3

几天前我在这里发布了一个问题: FOSUserBundle:嵌入登录表单并选择其模板

但是很复杂,而且我觉得这个问题的背后,可能是一个简单的路由问题,所以我觉得创建一个平行的话题,删除我所做的所有修改,重新开始安装是个好主意。

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

在我的 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 %}

而且我总是有这个错误:

在第 1 行的 rsWelcomeBundle:Homepage:index.html.twig 中呈现模板(“No route found for "GET Security:login"”)时引发异常。

如果我将这条线用于渲染部分,它就可以工作。

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

但为什么 ??在文档中,我从未见过我们必须使用“渲染(控制器”。为什么我不能直接使用:渲染“FOSUserBundle:Security:login”?

在 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" }

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

非常感谢大家!

4

2 回答 2

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

于 2013-04-07T15:02:28.187 回答
0

尝试{% render url('your url') %}改用。

于 2013-07-20T02:04:56.130 回答