2015-12-14 117 views
1

在Symfony 2.7.7項目中,我實現了官方文檔中描述的傳統登錄表單。不幸的是,每次用戶註銷時我都會收到以下錯誤:Symfony 2.7.7。註銷:無法找到路徑/註銷的控制器

無法找到路徑「/ logout」的控制器。路由配置錯誤。

我遵循這個配置http://symfony.com/doc/2.7/book/security.html#logging-out,我成功地做了很多次,但我找不到錯誤。

在這裏,你是我的代碼:

#security.yml 
security: 
    firewalls: 
     dev: 
      pattern: ^/(_(profiler|wdt)|css|images|js)/ 
      security: false  
     login: 
      pattern: ^/login$ 
      anonymous: ~ 
     main: 
      anonymous: ~ 
      form_login: 
       login_path: /login 
       check_path: /login_check  
     secured_area: 
      pattern: ^/ 
      form_login: ~ 
      remember_me: 
       key: "%secret%" 
       lifetime: 604800 
       path: /
       domain: ~ 
      logout: 
       path: /logout 
       target: /login 
    access_control: 
     - { path: ^/admin/utenti/modifica-password-scaduta, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/admin, roles: ROLE_ADMIN } 
     - { path: ^/aziende, roles: [ROLE_ADMIN, ROLE_ADMINISTRATIVE_PERSONNEL, ROLE_DOCTOR] } 
     - { path: ^/pazienti, roles: [ROLE_ADMIN, ROLE_ADMINISTRATIVE_PERSONNEL, ROLE_DOCTOR] } 
     - { path: ^/cartelle-sanitarie, roles: [ROLE_ADMIN, ROLE_ADMINISTRATIVE_PERSONNEL, ROLE_DOCTOR] } 

#routing.yml 
app: 
    resource: "@AppBundle/Controller/" 
    type:  annotation 

logout: 
    path: /logout 

註銷路徑被包含在由路由器提供的列表:調試

名稱方法方案主機路徑
login_route ANY ANY ANY /登錄
login_check任何任何/ login_check
退出任何任何/註銷

我知道許多討論都集中在這個問題上(即, http://www.forosdelweb.com/f68/symfony-2-7-logout-fallo-1133307/http://ambracode.com/index/show/99164),但我無法從多天中找到錯誤,並且我被卡住了!

謝謝

更新:我有臨時固定它定義了註銷操作在SecurityController:

/** 
* @Route("/logout", name="logout") 
*/ 
public function logoutAction() 
{ 
    $this->container->get('security.context')->setToken(null); 

    return $this->redirect($this->generateUrl('login_route')); 
} 

也許這個代碼可以幫助別人誰是我的相同條件!

回答

0

我認爲問題在於您嘗試匹配/註銷。 您的路徑中有一個前綴(secured_area)。 嘗試在secured_area使用此模式:

pattern: ^/secured_area 

嘗試在你的router.yml匹配這樣的:

/secured_area/logout 
+0

同樣的問題:「無法找到路徑控制器 「/ secured_area /註銷」。路由配置錯誤。「我已經按照你以前的要求編輯了我的帖子,其結果是路由器:debug。謝謝 – Gianluca78

+0

試着看這個:http://stackoverflow.com/questions/12409998/symfony2-1-unable-to-find-the-controller-for-path-login-check – Isky

+0

已經看到...但我沒有在我的模式中的前綴。這似乎有點不同,或者我只是不理解如何解決這個問題... – Gianluca78