users - поля id, name
messages - поля id, text
users_messages - поля id_user, id_message, private
отношение в messages
'users' => array(self::MANY_MANY, 'Users', 'users_messages(id_messages,id_users)'),
метод в модели messages для того чтоб выбрать то что нам нужно
public function searchUserMessages($user_id,$private=0)
{
$criteria=new CDbCriteria;
$criteria->with= array('users');
$criteria->together = true;
$criteria->condition = 'users.id = :uId';
$criteria->params = array(':uId'=>$user_id);
if ($private)
{
$criteria->addInCondition('users.private',1); // не понимаю как правильно написать это условие
}
return new CActiveDataProvider($this, array('criteria'=>$criteria,));
}Задача: выбрать из бд все messages пользователя user_id, для которых поле private в ассоциативной таблице равно 1

Help















