关系对象的关系 - Cakephp 2.0

时间:2012-06-18 13:00:45

标签: cakephp models database-replication

我有三个模型:User Image Group

  • 用户属于图像;
  • 群组属于用户(管理员)
  • 群组拥有且属于用户;
  • 用户拥有并属于群组;
  • 用户和群组模型与users_groups表格相关联;

当我查看群组时,会列出成员(用户,这是有效的)我需要提取他们的图像我该怎么办?

1 个答案:

答案 0 :(得分:0)

您应该使用ContainableBehavior。它将允许您控制您提取的数据。

首先,将其添加到AppModel。我也总是设置$recursive = -1所以永远不会提取额外的数据。请谨慎使用依赖$recursive数据的现有应用。

class AppModel extends Model {
    public $recursive = -1;
    public $actsAs = array('Containable');
}

然后,在查找调用期间,使用“包含”查询键。例如,在GroupsController上:

public function view($id = null) {
  $results = $this->Group->find('first', array(
    'conditions' => array(
        'Group.id' => $id
    ),
    'contain' => array(
        'User' => array(
            'Image'
        )
    )
  ));
}

这将引入与该组关联的用户信息,以及与用户关联的图像信息。