CActiveDataProvider で使用される CDbCriteria を作成しようとしています。多対多の関係の反対側で値を照会する必要があります。
次のテーブルがあります: order、user_order、user
リレーションは正しく宣言されているので、$order->users[0] にアクセスしてデータを正しく見ることができます。
私は次の基準を構築しようとしています:
$criteria=new CDbCriteria;
$criteria->with = array('users');
if (isset($_SESSION['hideCard'])){
$criteria->condition = "fname != 'Card'";
}
return new CActiveDataProvider(get_class($this), array(
'criteria'=>$criteria,
'pagination'=>array('pageSize'=>40)
));
これは基本的に、セッション変数が設定されている場合、DataProvider から fname が「Card」のすべてのユーザーを非表示にすることを意味します。
多対多の関係でこれを達成する方法についてのアイデアはありますか?