0

私は3つのモデルを持っています:User Image Group

  • ユーザーは画像に属しています。
  • グループはユーザー(管理者)に属しています
  • グループはユーザーを持っており、ユーザーに属しています。
  • ユーザーはグループを持っており、グループに属しています。
  • ユーザーとグループのモデルはusers_groupsテーブルに接続されています。

グループを表示しているときに、メンバーのリストが表示されます(ユーザー、これは機能します)画像を抽出する必要があります。どうすればよいですか?

4

1 に答える 1

0

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'
        )
    )
  ));
}

これにより、ユーザーに関連付けられた画像情報とともに、グループに関連付けられたユーザー情報が取り込まれます。

于 2012-06-18T14:35:54.373 に答える