【问题标题】:Symfony2 check logged user property, current route, and redirectSymfony2 检查记录的用户属性、当前路由和重定向
【发布时间】: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() 控制器方法,并将该逻辑放入此方法中。它工作正常,但我无法重定向响应。

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

【问题讨论】:

    标签: symfony listeners


    【解决方案1】:

    您是否尝试过这个解决方案:Redirect if the user is logged in

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-17
      • 2013-01-20
      • 1970-01-01
      • 2017-12-24
      • 1970-01-01
      • 1970-01-01
      • 2014-05-15
      • 2015-01-16
      相关资源
      最近更新 更多