2015-09-26 114 views
3

我第一次启动一个使用Cake 3.1的新应用程序。我曾经使用版本2+,但现在事情已经改变,我遇到了一些麻烦。CakePHP 3.1管理前缀路由和登录问题

我想在我的应用程序中拥有一个简单的授权系统,所以我决定使用“admin”前缀路由。

我: UsersController在控制器/管理/目录登录行动, 'ArticlesController' 命名空间应用程序\控制器\管理员

在routes.php文件,我有:

Router::prefix('admin', function ($routes) { 
$routes->fallbacks('DashedRoute'); 
}); 

错在: 如果我已经登录的一切工作正常,我可以访问我的管理措施。 但是,如果我是而不是登录,并且会尝试访问/ admin/articles/add我将被重定向到/ 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

也请出示您的身份验证组件配置/调用了'ArticlesController'受。 – ndm

+0

@ndm我已更新我的帖子。我刚开始这个项目,所以我有这个完整的代码。 – user1327

回答

4

好。我找到了解决办法 - 只需要添加

'loginAction' => [ 
    'prefix' => false, 
     'controller' => 'Users', 
     'action' => 'login', 
    ] 

要权威性组件配置