Come Filtrare Una Cgridview Con Una Join A Cascata

ciao a tutti non so se mi ero già presentato… :blink:

ho un problema con le join fin che si tratta di 2 tabelle non ho problemi ma con 3 continuo ad avere errori

cerco di spiegarmi

ho 3 tabelle con relative FK


t1 (id,campo)


t2 (id,campo)

t2.campo FOREIGN KEY ("t1.id")


t3 (id,campo)

t3.campo FOREIGN KEY ("t2.id")


la select su carta è abbastanza semplice:

SELECT t1.campo, t2.campo, t3.campo,

FROM t3 

join t2 on t2.id = t3.campo

join t1 on t1.id = t2.campo



ho delle difficoltà con CDbCriteria

in particolare il "$criteria->compare(‘xxxxx’,$this->yyyyy)

l’errore è:

che nel modello della "t3" non è presente nessuna relazione alla "t1" e quindi t1.campo non esiste

ho provato ad aggiungere una "relations()" ma sul modello t3 riesco ad aggiungere con successo solo una relazione con t2

non so se mi sono spiegato bene

qualcuno riesce ad aiutarmi?

Grazie

Ciao, hai risolto? mi sono ritrovato spesso a dover gestire query di quel tipo; ho risolto simplicemente utilizzando direttamente la query, con

‘CSqlDataProvider’ invece di ‘CActiveDataProvider’. Es.




$query = "SELECT blablabla..";

$result = new CSqlDataProvider($query,array('pagination'=>false));

$result_array = $result->getData();

var_dump($result_array);




alla fine ho risolto leggendo qui

[RISOLTO]

Esatto: potresti inserire [risolto] nel titolo del thread?