我有 2 个模型/视图/控制器 - 用户和作业
通过 Auth 方法,我在 AppController 中设置了以下内容:
$this->set('current_user', $this->Auth->user());
因此,一旦用户登录系统,我就可以使用用户数据。
我在用户表中有 id、姓名、电子邮件、用户名等,并且我有一个名为“group_id”的字段。我在作业表中还有一个“group_id”字段,我想做的只是显示记录/允许访问作业记录中的 group_id 与用户的 group_id 匹配的记录。
因此,我可以在作业索引视图中使用以下内容:
echo var_dump($current_user);
这将打印如下内容:
array(11) { ["id"]=> string(2) "13" ["firstname"]=> string(2) "My" ["surname"]=> string(4) "Name" ["email"]=> string(25) "myname@anemailaddress.com" ["username"]=> string(6) "myname" ["muso_email_notify"]=> string(1) "0" ["group_id"]=> string(1) "1" ["active"]=> string(1) "0" ["activationID"]=> string(0) "" ["memberaccesslevel"]=> string(1) "0" ["role"]=> string(7) "regular" }
所以,现在当我在我的 JobsController 中选择所有工作时,我想使用这样的东西(它可能不太正确):
$this->set('jobs', $this->Job->find('all', array(
'conditions' => array('Job.group_id' => $current_user['group_id']))));
但是,当我转到 Jobs 的索引视图时,我得到未定义变量错误:
注意(8):未定义变量:current_user [APP/Controller/JobsController.php,第 9 行]
我无法弄清楚我做错了什么?该变量在视图中有效,但在控制器逻辑中无效。
我正在使用 cake 2.3.4 和 mysql 数据库