1

我正在寻找放置我的逻辑以检查登录用户是否具有特定属性并检查当前路线的最佳位置。基于此,我想将用户重定向到特定路线。

我的用户扩展了奏鸣曲用户并具有额外的方法,例如:

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() 控制器方法的方法,并将该逻辑放入此方法中。它工作正常,但我无法重定向响应。

这种逻辑的最佳位置是什么?

4

1 回答 1

0

您是否尝试过此解决方案:如果用户已登录,则重定向

您必须在 Bundle 中创建一个 Listener 类并将此侦听器定义为服务。

于 2013-04-03T11:06:13.120 回答