在cakephp中从视图访问admin auth组件

在cakephp中从视图访问admin auth组件,php,mysql,cakephp,Php,Mysql,Cakephp,我想在default.ctp页面上显示一个指向管理面板的链接,但仅当用户是管理员时 我正试图做类似的事情,但似乎什么都没有发生 //default.ctp if (!empty($role) && ($role == 'admin')) { link here } 在appcontroller中的beforeFilter函数中,我有以下内容 $role = $this->Auth->user('role'); if ($role == 'auth

我想在default.ctp页面上显示一个指向管理面板的链接,但仅当用户是管理员时

我正试图做类似的事情,但似乎什么都没有发生

//default.ctp
if (!empty($role) && ($role == 'admin')) { 
   link here
} 
在appcontroller中的beforeFilter函数中,我有以下内容

$role = $this->Auth->user('role'); 
    if ($role == 'author' || $role == 'admin') { 
        $this->set('role', $role); 
    } 
当我尝试print_r($admin)时,会显示admin角色,但无论出于何种原因,if语句都不起作用

尝试使用:

$this->Session->read('Auth.User.role');
而不是在视图文件中


您将直接从会话中读取值,而不是设置新变量。

您可以尝试在AppController的beforeFilter()方法中使用以下代码段:

}

在您看来,只需使用以下内容:

 if($is_admin)
 {
      $this->Html->link('Admin Link', 'controllers/view');
 } 

视图中$role的值是多少?调试($角色);print_r($role)显示admin。然后,似乎您并没有实际向我们粘贴代码,这真的帮不上忙。我不明白您不实际粘贴代码是什么意思。这正是我的appController和视图中的内容。如果
链接
此处
未初始化,则会出现编译错误。另外,如何生成链接?在大多数情况下,它是
'Auth.User.role\u id'
(而不是
'Auth.User.role'
)!我同意,但他在问题中提到了“角色”!事实上,这可能只是他自己的拼写错误。父::beforeFilter()应该出现在beforeFilter调用中。
 if($is_admin)
 {
      $this->Html->link('Admin Link', 'controllers/view');
 }