如何在cakePHP中填充用户所属的多个表到多个表的组数组

时间:2013-03-19 23:20:36

标签: mysql arrays cakephp

我的cakePHP网站有三个表;用户,组和groups_users。

users.id通过一对多关系加入groups_users.users_id。

groups.id通过一对多关系加入groups_users.groups.id。

因此,groups_users包含所有用户及其所在组的列表。例如,用户1可能位于组1,2和3中.group_users还包含单独的主键字段。

我希望能够返回用户在登录时成为其成员的组名(groups.groupName)数组,然后保留此数组并使用它来检查该groupName是否具有查看权限网站的特定页面。

我是蛋糕的新手,但对PHP感到满意。

1 个答案:

答案 0 :(得分:0)

在这些情况下我更喜欢可容纳的东西。我相信有人会告诉我是否有理由不这样做。

首先,您需要将此行添加到您的用户模型中:

public $actsAs = array('Containable');

确保您也可以在此处正确设置关系。然后,您可以在控制器中使用以下代码。

$groups = $this->User->find('first', array(
  'conditions' => array(
    'User.id' => $id
  ),
  'contain' => array(
    'Group' => array(
       'fields' => array(
         'Group.groupName'
        )
      )
   )
));
$this->set('groups', $groups);

最后一行使视图中的变量可用。尝试在控制器或视图中运行debug($ groups)以查看输出。