获取属于用户的所有组


Getting All groups that belong to user

我有用于用户和组的HABTM。我想在组视图中显示 - 属于用户的所有组。或者换句话说 - 所有拥有用户的组。

我纠结在 MVC 中,无法弄清楚。这是我的两个模型:类 课程扩展应用模型

  public $name = 'Course';
  public $hasAndBelongsToMany = array('User' =>
            array(
                'unique' => false
            )
            );

和。。。

 public $name = 'User';
  public $hasAndBelongsToMany = array('Course' =>
            array(
                'unique' => true
            )
            );

数据库中的表名是courses_users - 此表包含组 ID 和用户 ID。

应该很简单,但我是 CakePHP 的新手,所以我需要一些帮助。谢谢!

CakePHP 默认将递归设置为 1,这意味着假设您没有更改递归设置,当您在用户上调用 find 时,它将自动获取所有相关课程,假设您在执行查找时设置了 HABTM 关系。 因此,您所要做的就是:

$this->User->find('first', array('conditions' => array('User.id' => $this->Auth->user('id'))));

在您的用户模型中,我认为这不是绝对必要的,但我喜欢在 HABTM 关系上指定连接表等:

public $hasAndBelongsToMany = array('Course' =>
        array(
            'unique' => true,
            'dependent' => false,
            'joinTable' => 'courses_users',
            'foreignKey' => 'user_id',
            'associationForeignKey' => 'course_id',
        )
    );

请记住,在 HABTM 关系中,除了在设置关系时指定要用作连接表的表之外,您从未真正接触过 joinTable。 CakePHP 将自动完成其余的工作。