In questo mi ha aiutato un’ altro utente con le relations, perchè nell’ innerJoin e nel Left mi dava sempre errori.
Ora questa relazione non sta agendo a quanto credo, perchè avevamo deciso di creare quella tabella se poi in futuro ogni agenzia avrebbe potuto gestire piu cap per farlo capire da quella tabella. Ma dopo cambiando strada abbiamo deciso di fare tutto tramite le tabelle user - agenzia e cap con Inner e Left Join nelle tabelle e dicendo a yii nella pagina index "Telegramma" di mostrare i risultati in base a:
public function actionIndex()
{
echo Yii::app()->user->id;
if(Yii::app()->user->checkAccess("admin"));
$user = User::model()->findByPK(Yii::app()->user->id);
$cr = new CDbCriteria();
$cr->with = array('utenti' => array('condition' => 'utenti.id = :idUtente','params' => array(':idUtente' => $user->id)));
$dataProvider=new CActiveDataProvider('Telegramma', array('criteria' => $cr));
$this->render('index',array(
'dataProvider'=>$dataProvider,
));
Query che viene eseguita in index:
Querying SQL: SELECT `t`.`id` AS `t0_c0`, `t`.`nome_mitt` AS `t0_c1`,
`t`.`cognome_mitt` AS `t0_c2`, `t`.`indirizzo_mitt` AS `t0_c3`,
`t`.`via_mitt` AS `t0_c4`, `t`.`civico_mitt` AS `t0_c5`, `t`.`cap_mitt` AS
`t0_c6`, `t`.`citta_mitt` AS `t0_c7`, `t`.`provincia_mitt` AS `t0_c8`,
`t`.`stato_mit` AS `t0_c9`, `t`.`nome_dest` AS `t0_c10`, `t`.`cognome_dest`
AS `t0_c11`, `t`.`indirizzo_dest` AS `t0_c12`, `t`.`via_dest` AS `t0_c13`,
`t`.`civico_dest` AS `t0_c14`, `t`.`cap_id` AS `t0_c15`, `t`.`citta_dest`
AS `t0_c16`, `t`.`provincia_dest` AS `t0_c17`, `t`.`stato_dest` AS
`t0_c18`, `t`.`parole` AS `t0_c19`, `t`.`prezzo` AS `t0_c20`, `utenti`.`id`
AS `t1_c0`, `utenti`.`agenzia_id` AS `t1_c1`, `utenti`.`username` AS
`t1_c2`, `utenti`.`password` AS `t1_c3`, `utenti`.`session` AS `t1_c4`,
`utenti`.`data_registrazione` AS `t1_c5` FROM `telegramma` `t` LEFT OUTER
JOIN `cap` `Cap` ON (`t`.`cap_id`=`Cap`.`id`) LEFT OUTER JOIN `user`
`utenti` ON (`Cap`.`agenzia_id`=`utenti`.`id`) AND
(`Cap`.`agenzia_id`=`utenti`.`id`) WHERE (utenti.id = :idUtente) LIMIT 10
Quindi penso di poter eliminare sia la tabella che la relation…stasera provo perchè prima devo farmi un backup di tutto.