在cakephp中从视图访问admin auth组件
我想在default.ctp页面上显示一个指向管理面板的链接,但仅当用户是管理员时 我正试图做类似的事情,但似乎什么都没有发生在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
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');
}