symfony2 twig表单注册包含在外部模板中

时间:2014-08-08 21:49:31

标签: forms symfony fosuserbundle

耐心是我的第一个问题,我的英语也很差; P

顺便说一下......我在我的网站上使用fos并且所有工作都很好,实际上我的问题是我有"页面"用树枝制作的模板,它在底部有一个号召性用语按钮,它滑动了一个隐藏的div,我想把我的注册表单放在哪里。 我设置了隐藏的div并尝试放入我的include:

{% block fos_user_content %}
    {% include "FOSUserBundle:Registration:register_content.html.twig" %}   
{% endblock fos_user_content %}
显然它不起作用:

变量"形式"在第2行的kernel.root_dir / Resources / JuliusUserBundle / views / Registration / register_content.html.twig中不存在

可能是出于与路由或防火墙或安全相关的某些原因? 任何人都有解决方案,建议或想法吗?

谢谢和欢呼!

3 个答案:

答案 0 :(得分:1)

正如错误所说,你需要定义'形式'您的操作中的变量,或者您可以尝试呈现FOSUser注册操作而不是此操作。

例如:

{% render(controller(FOSUserBundle:Registration:register")) %}

答案 1 :(得分:0)

如果您需要使用include,则必须将form变量传递给包含的模板。您也可以选择从其相应的控制器渲染该模板。 所以对于第一种情况你有:

 {% include("FOSUserBundle:Registration:register_content.html.twig") with {'form':form} %} 

此处的表单是您从自己的控制器传递的变量。你的第二个选择是像这样呈现FOSUB模板:

{% render(controller("FOSUserBundle:Registration:register")) %}

答案 2 :(得分:0)

显然我发现使用Edge Side Includes(ESI)包含的一个很好的解决方案,这也为我提供了缓存控制方面的其他好处:

<esi:include src="http://localhost:8004/login" />