在CakePHP3中,在页面上创建一个仅限管理员的部分
我想创建一个页面,其中管理员和用户都可以查看,但在页面的一侧,只有管理员可以查看,而在另一侧,用户和管理员都可以查看 我用这个密码试过了在CakePHP3中,在页面上创建一个仅限管理员的部分,php,cakephp,admin,Php,Cakephp,Admin,我想创建一个页面,其中管理员和用户都可以查看,但在页面的一侧,只有管理员可以查看,而在另一侧,用户和管理员都可以查看 我用这个密码试过了 $this->Auth->user(['role']['admin']); 这是我的控制器中函数的代码 这是我的视图代码 if ($this->request->session()->read('Auth.User.role.admin')){ 我试图实现的是auth组件检查用户的角色,如果它是admin,它应该显示页面中对用
$this->Auth->user(['role']['admin']);
这是我的控制器中函数的代码
这是我的视图代码
if ($this->request->session()->read('Auth.User.role.admin')){
我试图实现的是auth组件检查用户的角色,如果它是admin,它应该显示页面中对用户隐藏的部分
这就是我得到的错误
注意(8):未定义索引:admin[APP/Controller\BestellenController.php,第17行]
您可以更好地处理来自AppController的操作授权
在AppController中,执行以下操作:
public function isAuthorized($user) {
$action = $this->request->params['action']; // request action
if($action == "test") {
if($user['role'] == 'admin'){
return true;
} else {
// this page is for admin only
echo 'You are not authorized to access the page.';
// redirect('Somewhere');
}
}
}
上述函数只是使“测试”操作仅可供管理员访问。如果您想对任何控制器的任何操作执行相同的操作,也只需检查那里的控制器
如果您希望仅允许某些角色访问视图的某些部分,则:
$role = $this->request->session()->read('Auth.User.role');
if($role == "admin") {
// this is for admin
} else {
// this is for other
}
我希望用户表中有角色字段。只需创建一个条件,如if($this->Auth->user(['role']=“admin”)…我想你可以用appController更好地处理这些事情..如果我这样做了,我会出现以下错误,AuthHelper无法找到。在文档中我找不到任何关于auth Helper的信息。你在appController中加载了auth组件了吗?是的,我加载了它,我不想这样,例如,一些文本blahblah blah,你是指你吗是否希望在视图文件中执行此操作?作为对最后一部分的补充,
$this->request->session()->read(…)
可以毫无问题地用于视图、布局、模板和控制器。