Posts、Users、Images の 3 つのテーブルがあるとします。投稿は users テーブルと関係があり、画像は user テーブルと関係があるため、投稿はユーザーに属し、画像はユーザーに属します。
Post {
post_id
user_id
}
Users {
user_id
}
Images {
image_id
user_id
}
Yii では、関係をモデルで定義できるようになりました。私は次のように関係を設定しています:
<?php
class Users extends CModel {
public function relations() {
'images' => array(self::HAS_ONE, 'Images', 'user_id')
'posts' => array(self::HAS_MANY, 'Posts', 'user_id')
}
}
class Images extends CModel {
public function relations() {
'user' => array(self::HAS_ONE, 'Users', 'user_id')
}
}
class Posts extends CModel {
public function relations() {
'user' => array(self::HAS_ONE, 'Users', 'user_id')
}
}
Yii では、DBCriteria を使用して、「with」関数で CDbCriteria を使用してこれを照会できます。私の質問は、Post モデルでクエリを実行し、Users モデル内の関係を使用してユーザーの画像を取得する方法です。
例:
CActiveDataProvider('Posts', array(
'criteria'=>array(
'with' => array('users', 'Users.images'),
),
'pagination'=>array(
'pageSize'=>20,
),
));
Yiiでこれを達成する方法はありますか?