我第一次使用Cake 3.1开始新的应用程序。我以前使用版本2+,但现在情况发生了变化,我遇到了一些麻烦。
我想在我的应用中设置一个简单的授权系统,所以我决定使用“admin”前缀路由。
我有: 具有登录操作的用户控制器,带有控制器/管理员/ 目录中的命名空间 App \ Controller \ Admin 的 ArticlesController 。
在routes.php中我有:
Router::prefix('admin', function ($routes) {
$routes->fallbacks('DashedRoute');
});
出了什么问题: 如果我已经登录,一切正常,我可以访问我的管理员操作。 但如果我不登录,并尝试访问/ admin / articles / add,我将被重定向到/ admin / users / login。这是完全错误的,我显然得到缺少控制器异常。
我的问题: 我需要做些什么来解决这个问题并获得正确的重定向到登录 action / users / login而不是前缀版本(/admin/users/login).
AppController的:
public function initialize()
{
parent::initialize();
$this->loadComponent('RequestHandler');
$this->loadComponent('Flash');
$this->loadComponent('Auth', [
'loginRedirect' => [
'controller' => 'Pages',
'action' => 'display',
'home',
],
'logoutRedirect' => [
'controller' => 'Pages',
'action' => 'display',
'home'
]
]);
}
public function beforeFilter(Event $event)
{
$this->Auth->allow(['index', 'view', 'display']);
}
答案 0 :(得分:4)
好。我找到了解决方案 - 只需要添加
getAttribute
到auth组件配置