2015-09-26 76 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', 
    ] 

要權威性組件配置