FOSUserBundle:找不到安全路由:登录

时间:2013-04-06 20:13:18

标签: symfony routes fosuserbundle

我几天前在这里发布了一个问题: FOSUserBundle: embedding the login form and choosing its template

但是它非常复杂,我想在这个问题背后,可能存在一个简单的路由问题,所以我认为创建一个并行主题,删除我所做的所有修改,并从新的安装开始是一个好主意

所以,我安装了FOSUserBundle,我有一个WelcomeBundle,它包含了我网站的几个页面,我还创建了一个新的UserBundle,它只包含FOSUserBundle的用户实体,没有别的(没有任何覆盖)。 / p>

在我的rsWelcomeBundle中,在我的index.html.twig中,我提出了这个简单的代码:

{% extends "rsWelcomeBundle::layout.html.twig" %}

{% block title "Page d'accueil" %}

{%  block body %}
    <div class="span6">
        <div class="well">
            <h2>Présentation du jeu</h2>
            <a href="{{ path('rsWelcomeBundle_homepage_inscription') }}" class="btn ">Je m'inscris !</a></p>
        </div>
    </div>
    <div class="span6">
        <div class="well">
            {% render "FOSUserBundle:Security:login" %}
        </div>
    </div>

{% endblock %}

我总是有这个错误:

在rsWelcomeBundle:Homepage:index.html.twig第1行呈现模板期间(“找不到”GET Security:login“”的路径)时抛出了异常。

如果我将这一行放在渲染部分,它就能正常工作。

{% render(controller("FOSUserBundle:Security:login")) %}

但为什么? 在文档中,我从未看到我们要使用“渲染(控制器”)。 为什么我不能直接使用:渲染“FOSUserBundle:安全:登录”?

在app / config / routing.yml中我有:

tuto_welcome:
    resource: "@rsWelcomeBundle/Resources/config/routing.yml"
    prefix:   /

fos_user_security:
    resource: "@FOSUserBundle/Resources/config/routing/security.xml"

fos_user_profile:
    resource: "@FOSUserBundle/Resources/config/routing/profile.xml"
    prefix: /profile

fos_user_register:
    resource: "@FOSUserBundle/Resources/config/routing/registration.xml"
    prefix: /register

fos_user_resetting:
    resource: "@FOSUserBundle/Resources/config/routing/resetting.xml"
    prefix: /resetting

fos_user_change_password:
    resource: "@FOSUserBundle/Resources/config/routing/change_password.xml"
    prefix: /profile

在UserBundle中我没有routing.yml。 在WelcomeBundle中,我在routing.yml中有这个:

rsWelcomeBundle_homepage:
    pattern:  /
    defaults: { _controller: "rsWelcomeBundle:Homepage:index" }

我试图解决这个问题已经有两天了,你能帮帮我吗?

非常感谢大家!

2 个答案:

答案 0 :(得分:6)

{% render "FOSUserBundle:Security:login" %}是Symfony 2.0呈现子请求的方式。 {{ render(controller("FOSUserBundle:Security:login")) }}是2.1+的语法。两种语法基本上都是完全相同的。

有关子请求的文档位于:http://symfony.com/doc/current/quick_tour/the_view.html#embedding-other-controllers

答案 1 :(得分:0)

请尝试使用{% render url('your url') %}