Ho due tabelle(inventario_pc, arcdipan) senza chiave esterna o altri vincoli tra loro, entrambe hanno una colonna "cod_dip" col codice del dipendente. Vorrei fare una join tra le due tabelle nel metodo search del model inventarioPc in modo tale che tramite il cod_dip da arcdipan riesco a prendere il parametro cognome.
Questo è ciò che ho fatto riprendendo questo topic: http://www.yiiframework.com/forum/index.php/topic/13377-solved-how-do-i-search-on-a-join-in-adminphp/
public function search()
{
// Warning: Please modify the following code to remove attributes that
// should not be searched.
$criteria=new CDbCriteria;
$criteria->join = 'LEFT JOIN ARCDIPAN as tbl_alias ON tbl_alias.cod_dip = cod_dip';
$criteria->compare('id_postazione',$this->id_postazione);
$criteria->compare('cod_dip',$this->cod_dip,true);
$criteria->compare('nomecomputer',$this->nomecomputer,true);
$criteria->compare('os',$this->os,true);
$criteria->compare('ram',$this->ram,true);
$criteria->compare('disco',$this->disco,true);
$criteria->compare('processore',$this->processore,true);
$criteria->compare('licenza',$this->licenza,true);
$criteria->compare('ip_pc',$this->ip_pc,true);
$criteria->compare('tbl_alias.COGNOME',$this->tbl_alias->COGNOME, true);
return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
));
}
Nella view:
$this->widget('bootstrap.widgets.TbGridView',array(
'type'=>'striped bordered condensed',
'id'=>'inventario-pc-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
//'id_postazione',
'',
'nomecomputer',
'os',
'ram',
'disco',
'ip_pc',
'ARCDIPAN.COGNOME',
array(
'class'=>'bootstrap.widgets.TbButtonColumn',
),
),
));