Symfony2 在成功注册 FosUserBundle 后重定向用户

Symfony2 Redirect user after succesfull register with FosUserBundle

我试了很多方法解决这个问题,还是不行。我想要的是,在用户成功注册后,他将重定向到想要的页面。

所以,我有一个 UserBundle:

我已经尝试了很多其他配置并检查了其他论坛,但似乎重定向不起作用。

有人有想法吗? 提前致谢

有一些方法可以做到这一点:

更改默认页面

# app/config/security.yml
security:
    firewalls:
        main:
            form_login:
                # ...
                always_use_default_target_path: true
                use_referer: true
                default_target_path: default_security_target

从表单内部控制重定向 URL

{# src/Acme/SecurityBundle/Resources/views/Security/login.html.twig #}
{% if error %}
    <div>{{ error.message }}</div>
{% endif %}

<form action="{{ path('login_check') }}" method="post">
    <label for="username">Username:</label>
    <input type="text" id="username" name="_username" value="{{ last_username }}" />

    <label for="password">Password:</label>
    <input type="password" id="password" name="_password" />

    <input type="hidden" name="_target_path" value="account" />

    <input type="submit" name="login" />
</form>

并在您的安全范围内:

# app/config/security.yml
security:
    firewalls:
        main:
            form_login:
                target_path_parameter: redirect_url

阅读更多信息:http://symfony.com/doc/current/cookbook/security/form_login.html

我这样解决了问题:

在 app/config/routing 中:

添加这个

fos_user_registration_confirmed:
    pattern: /registration/confirmed
    defaults: { _controller: MDBUserBundle:User:confirmed }
    requirements:
        _method: GET

然后在目标控制器中做你想做的事:

  public function confirmedAction()
    {
        return $this->render('MDBPlatformBundle:Default:index.html.twig'
        );
    }

好人link谁能帮助解决类似情况:How to customize FOS UserBundle URLs

希望这会有所帮助

如果您只想重定向,可以进一步简化 LeZelkins 接受的答案。使用 FrameworkBundle 重定向控制器:

# routing.yml
fos_user_registration_confirmed:
    path: /registration/confirmed
    defaults:
        _controller: FrameworkBundle:Redirect:urlRedirect
        path: /admin/dashboard