对不起我是cakephp 3.0的新手。在我的用户表中,有两种用户类型:admin和public。如何根据default.ctp中的用户类型显示/隐藏链接?任何人都可以指导我,谢谢!!
这是我的app控制器
namespace App\Controller;
use Cake\Controller\Controller;
use Cake\Event\Event;
class AppController extends Controller
{
//...
public function initialize()
{
$this->loadComponent('Flash');
$this->loadComponent('Auth', [
'authenticate' => [
'Form' => [
'fields' => [
'username' => 'email',
'password' => 'password'
]
]
],
'loginRedirect' => [
'controller' => 'Users',
'action' => 'index'
],
'logoutRedirect' => [
'controller' => 'Pages',
'action' => 'display',
'home'
]
]);
}
public function beforeFilter(Event $event)
{
$this->Auth->allow(['controller' => 'Users', 'action' => 'add', 'index',
]);
}
}
答案 0 :(得分:0)
您发布的AppController与我对您的请求的理解无关,这让我有点困惑。无论哪种方式,您都可以通过会话变量访问当前登录用户的会话。
例如 - 如果您的用户表格中包含“' type'其中的价值观' public'或者' admin'存储,看起来像这样:
<?php if ($this->session->read('Auth.User.type') == 'admin') { ?>
<a href="#">Link to admin functions</a>
<?php } else { ?>
<a href="#">Boring public link</a>
<?php } ?>
假设您正在使用已登录的用户。如果您还没有那么远,请阅读CakePHP 3 tutorial on authentication and authorization。