私は3つのモデルを持っています:User Image Group
。
- ユーザーは画像に属しています。
- グループはユーザー(管理者)に属しています
- グループはユーザーを持っており、ユーザーに属しています。
- ユーザーはグループを持っており、グループに属しています。
- ユーザーとグループのモデルは
users_groups
テーブルに接続されています。
グループを表示しているときに、メンバーのリストが表示されます(ユーザー、これは機能します)画像を抽出する必要があります。どうすればよいですか?
私は3つのモデルを持っています:User Image Group
。
users_groups
テーブルに接続されています。グループを表示しているときに、メンバーのリストが表示されます(ユーザー、これは機能します)画像を抽出する必要があります。どうすればよいですか?
ContainableBehaviorを使用する必要があります。これにより、プルするデータを制御できます。
まず、AppModelに追加します。$recursive = -1
また、余分なデータがプルされないように常に設定しています。$recursive
データに依存する既存のアプリでこれを行う場合は注意が必要です。
class AppModel extends Model {
public $recursive = -1;
public $actsAs = array('Containable');
}
次に、find呼び出し中に、「contain」クエリキーを使用します。たとえば、GroupsControllerでは次のようになります。
public function view($id = null) {
$results = $this->Group->find('first', array(
'conditions' => array(
'Group.id' => $id
),
'contain' => array(
'User' => array(
'Image'
)
)
));
}
これにより、ユーザーに関連付けられた画像情報とともに、グループに関連付けられたユーザー情報が取り込まれます。