У меня есть проблема с использованием CDbCriteria в действии индекса контроллера. У меня есть 2 класса: событие и участник. событие класс имеет много Attendee, и я хочу, чтобы мой индекс событие действия, чтобы сделать только список событий, о которых текущий пользователь является LoggedIn посетитель ...YII dataProvider отношение CDbCriteria
$criteria = new CDbCriteria(array(
'order'=>'event_date desc',
'with' => array('attendees'=>array('alias'=>'attend')),
'condition'=>'attend.uid = ' . Yii::app()->user->id,
));
$dataProviderAtt=new CActiveDataProvider('Event',
array(
'criteria' => $criteria,
)
);
$this->render('index',array(
'dataProvider'=>$dataProviderAtt,
));
это не работает в БД с сообщением : CDbCommand не удалось выполнить SQL заявление: SQLSTATE [42000]: ошибка синтаксиса или нарушение доступа: 1066 Не уникальный стол/псевдоним: 'пользователь'
мои отношения в классе Attendee устанавливаются так:
public function relations() { // NOTE: you may need to adjust the relation name and the related // class name for the relations automatically generated below. return array( 'user' => array(self::BELONGS_TO, 'YumProfile', 'uid', 'alias'=>'user'), ); }
Я попытался изменить defaultscope в очной модели и определить несколько псевдонимов:
public function defaultScope()
{
static $counter = 0;
return array(
'with' => array('user'=>array('alias'=>'user'.($counter++))),
//'with' => 'user',
'order' => 'score DESC',
);
}
но это, кажется, не решить проблему, а затем у меня есть больше ошибок. Правильно ли установлены мои критерии? Thx ребята за вашу помощь