0

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

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

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

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

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

我是蛋糕新手,但对 php 很满意。

4

1 回答 1

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) 以查看输出。

于 2013-03-20T03:18:52.743 回答