CakePHP 3.1管理员前缀路由和登录问题

时间:2015-09-26 17:44:11

标签: php cakephp

我第一次使用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']);
}

1 个答案:

答案 0 :(得分:4)

好。我找到了解决方案 - 只需要添加

getAttribute

到auth组件配置