I recently updated my code to use CActiveDataProvider with CListView. I am having a problem accessing relations though. Here is what I have:
Model relation:
'rel_genres'=>array(self::HAS_MANY, 'Option', 'link_id', 'condition'=>'gen.attribute_id=4', 'alias'=>'gen'),
Controller:
$criteria=new CDbCriteria;
$criteria->with=array('user');
if(!empty($_GET['genre']))
{
array_push($criteria->with, 'rel_genres');
$criteria->addInCondition('gen.value', $_GET['genre']);
}
$model=Profile::model();
$dataProvider=new CActiveDataProvider($model, array(
'criteria'=>$criteria,
'pagination'=>array(
'pageSize'=>16,
),
));
View:
<?php $this->widget('zii.widgets.CListView', array(
'dataProvider'=>$dataProvider,
'itemView'=>'_profiles',
)); ?>
This was all working fine before I changed to CActiveDataProvider (I was using a standard findAll() before that).
The error I am getting is: Column not found: 1054 Unknown column ‘gen.value’ in ‘where clause’