2013-02-15 32 views
1

我正在寻找最好的地方把我的逻辑来检查登录的用户是否有特定的属性,并检查什么是当前的路线。基于此,我想将用户重定向到特定路线。Symfony2检查记录的用户属性,当前的路线和重定向

我的用户扩展索纳塔用户,并具备额外的方法:

class User extends BaseUser 
{ 
    /** 
    * @return boolean 
    */ 
    public function hasProperty() 
    { 
     ... 

而且,我有一个路线:

route_a: 
    pattern: /a 
route_b: 
    pattern: /b 

,如果:

if ($user->hasProperty() && $currentRoute == 'route_a') { 
    redirectTo('route_b'); 
} 
if (!$user->hasProperty() && $currentRoute != 'route_a') { 
    redirectTo('route_a'); 
} 

我试着做在监听kernel.controller事件,并且在这个监听器中,我调用了类似init()控制器方法的东西,并且放了th在这种方法的逻辑。它工作正常,但我无法重定向响应。

这个逻辑的最佳地点是什么?

回答