La comunità italiana su CakePHP

You are not logged in. Please login or register.


Pages: 1

Atom RSS

Posts [ 6 ]

Ernesto

Topic: Containable fa lavorare le afterFind anche nei modelli collegati?

Ciao a tutti

mi confermate che, utilizzando il behavior Containable le afterFind dei modelli collegati funzionano??

ho alcuni spezzoni di codice (un paio di campi calcolati) che, se tolgo containable, smettono di funzionare.

fzanardo

Re: Containable fa lavorare le afterFind anche nei modelli collegati?

A me containable non è che entusiasmi parecchio, a me capita che mi tira dentro anche dei campi che effettivamente non contengono quello che chiedo.

Teoricamente dovrebbero funzionare. Praticamente se mi spieghi qual'è l'anomalia possiamo capire il perchè.

Ernesto

Re: Containable fa lavorare le afterFind anche nei modelli collegati?

vediamo se riesco a spiegarmi con un esempio...

ammettiamo d iavere 2 modelli collegati tra di loro

Order hasMany Item

nella callback afterFind del modello Item ho una semplice routine che mi aggiunge un campo calcolato

function afterFind ($results = array(), $primary = false) {
    foreach ($results as &$item) {
        if (isset($item[$this->alias][$this->primaryKey])) {            
            $item[$this->alias]["Boh"] = "ProvaProva";
        }
    }
    return $results;
}

a questo punto, dal controller Orders tento di recuperare i dati.

function ricercaStandard () {
    
    //senza usare containable
    $this->recursive = 2;
    pr($this->Order->find("all"));

    //nell'output nn c'é traccia de campo creato nella afterFind

}

function usandoContainable () {

    //utilizzando containable
    pr($this->Order->find("all", array("contain" => array("OrderItems"))));

    //qua invece il campo calcolato appare

}

fzanardo

Re: Containable fa lavorare le afterFind anche nei modelli collegati?

strano... ma ti da il campo non valorizzato o proprio non lo vedi?
prova a fare un read e a vedere se esiste e se lo vede. se no mi sembra strano che con il contanaible si e con l'altro no, a meno che prima si fa la query poi si fa l'afterfind e poi bisogna rieseguire la query, prova a fare una cagata del tipo:

    pr($this->Order->find("all"));
    pr($this->Order->find("all"));

Ernesto

Re: Containable fa lavorare le afterFind anche nei modelli collegati?

uhm... secondo me containable utilizza tutti i modelli come fossero primari

facendo ciò aggira uno degli attuali limiti di cake (le callback che nn funzionano se il modello nn é il principale)

fzanardo

Re: Containable fa lavorare le afterFind anche nei modelli collegati?

può essere, sinceramente non lo so proprio.
prova a postare su googlegroup magari qualche anima pia ne sa qualcosa

Posts [ 6 ]

Guest posting is disabled. You must login or register to post a reply.

Pages: 1

Topic info

0 guests and 0 users are reading this topic now


Forum quick jump menu

Currently used extensions: pun_topic_online_users, pun_karma, pun_admin_hook_navigator, pun_bbcode. Copyright © 2008 PunBB

[ Generated in 0.029 seconds, 12 queries executed ]