2015-11-13 92 views
2

我点击我的注销按钮,应该注销我。我根据纪录片所做的一切,但仍收到以下错误为什么注销不起作用? Symfony2

Unable to find the controller for path "/logout". The route is wrongly configured. 

这里是我的security.yml

firewalls: 
    main: 
    anonymous: ~ 
    dev: 
    pattern: ^/(_(profiler|wdt)|css|images|js)/ 
    security: false 
    secured_area: 
    pattern: ^/ 
    form_login: 
     login_path: /login 
     check_path: /login_check 
     default_target_path:/
    logout: 
     path: /logout 
     target:/
     invalidate_session: false 

我当然加

logout: 
    path: /logout 

到的routing.yml

我的注销有什么问题?

+0

我应该在哪里添加它?在security.yml中注销?我收到以下错误,然后在“security.firewalls.secured_area.logout”下出现无法识别的选项“注销” –

回答

0

增加这样的功能解决了这个问题:

/** 
* @Route("/logout", name="logout") 
*/ 
public function logingOut() { 
    $this->get('security.token_storage')->setToken(null); 
    $this->get('request')->getSession()->invalidate(); 

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

你确定你添加在文件中的注销路径路由?试试这个在您的控制台,你应该看到未来:

app/console debug:router 
... 
    login      ANY ANY ANY /login 
    login_check    ANY ANY ANY /login_check 
    logout      ANY ANY ANY /logout 
... 

,如果你不能看到这一点,也许你不正确的路由添加的路径。