Tengo 2 tablas relacionadas una llamada solicitantes y otra llamada solicitudes, quiero que en el CGridView de las solicitudes me muestre cedula, nombre y apellido del solicitante, pero el problema viene cuando los relaciono en la function Search() del modelo, porque en el CGridView tengo que poner el name=>solicitantes_id tanto a cedula, nombre y apellido porque esa es su relación pero me empieza a arrojar error 500 cuando busco en el filtro
Codigo del CGridView:
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'solicitudes-social-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
array ('header'=>Yii::t('app','Number'),'name'=>'id','value'=>'$data->id','type'=>'text'),
array ('header'=>Yii::t('app','IdentificationCard'),'name'=>'solicitantes_id','value'=>'$data->solicitantes->cedula','type'=>'text'),
array ('header'=>Yii::t('app','Name'),'name'=>'solicitantes_id','value'=>'$data->solicitantes->nombre','type'=>'text'),
array ('header'=>Yii::t('app','LastName'),'name'=>'solicitantes_id','value'=>'$data->solicitantes->apellido','type'=>'text'),
array ('header'=>Yii::t('app','Type'),'name'=>'tipo_solicitudes_id','value'=>'$data->tipo_solicitudes->nombre','type'=>'text'),
array ('header'=>Yii::t('app','Date'),'name'=>'fecha','value'=>'$data->fecha','type'=>'text'),
array ('header'=>Yii::t('app','Description'),'name'=>'descripcion','value'=>'$data->descripcion','type'=>'text'),
array ('header'=>Yii::t('app','Status'),'name'=>'estatus','value'=>'SolicitudesSocial::model()->getStatus($data->id)','type'=>'text')
Codigo de la function Search() del modelo:
public function search()
{
// @todo Please modify the following code to remove attributes that should not be searched.
$criteria=new CDbCriteria;
$criteria->compare('id',$this->id, true);
$criteria->compare('fecha', $this->fecha, true);
$criteria->compare('descripcion', $this->descripcion);
$criteria->compare('estatus',$this->estatus);
$criteria->with = array('solicitantes');
$criteria->addSearchCondition('LOWER(solicitantes.cedula)', strtolower((string)$this->cedula));
$criteria->addSearchCondition('LOWER(solicitantes.nombre)',sstrtolower((string)$this->cedula));
$criteria->addSearchCondition('LOWER(solicitantes.apellido)', strtolower((string)$this->apellido));
$criteria->with = array('tipo_solicitudes');
$criteria->addSearchCondition('LOWER(tipo_solicitudes.nombre)', strtolower((string)$this->tipo_solicitudes_id), true);
$_SESSION['datos_filtrados'] = new CActiveDataProvider($this, array(
'criteria'=>$criteria,
'pagination'=>false,
));
return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
'pagination'=>false,
));
}