【发布时间】:2013-02-15 15:02:16
【问题描述】:
我正在寻找最好的地方来放置我的逻辑以检查登录用户是否具有特定属性并检查当前路线是什么。基于此,我想将用户重定向到特定路线。
My User 扩展了 Sonata User 并具有额外的方法,例如:
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() 控制器方法,并将该逻辑放入此方法中。它工作正常,但我无法重定向响应。
这个逻辑的最佳位置是什么?
【问题讨论】: