我想访问
跨视图文件,根据group_id打开和关闭菜单和选项卡。
如何以最小的牺牲性能实现这一目标?
由于
答案 0 :(得分:4)
如果您使用AuthComponent,它会将当前登录用户的记录存储在密钥Auth
下的会话中。您可以通过会话组件或帮助程序在任何位置访问它:
$this->Session->read('Auth.User.name')
即使您没有使用AuthComponent,会话也是存储当前用户信息的最佳位置。
否则,通常,Configure类通常是存储此类全局信息的好地方:
Configure::write('User', array('id' => $id, ...));
Configure::read('User.id');
答案 1 :(得分:2)
我一直在做的是创建一个AppHelper并为此创建一个方法。 当然这与deceze的答案类似,但它减少了你需要编写的一些代码;)
function user($key) {
$user = $this->Session->read('Auth.User');
if (isset($user[$key])) {
return $user[$key];
}
return false;
}
然后您可以通过$ this-> Html-> user('id');
来调用用户的ID答案 2 :(得分:1)
也许您可以在AppController中设置所需的变量(由所有子控制器扩展)。然后,您应该能够从所有视图访问它们,但要小心地将它们命名为唯一。 CakePHP book - App Controller