Symfony 2 表单主题和 JS
Symfony 2 Form theming and JS
我有 AFormType class 和相应的 twig 模板,它们在 some_controller_action.html.twig 中以这种方式处理:
{% form_theme a_form with ['ABundle:Form:a-form.html.twig'] %}
{{ form(a_form) }}
我想要一个-form.html.twig包含javascript,它只与表格有关,与其他无关。所以我在那里添加了以下内容:
{% block javascripts %}
<script type="text/javascript">
$(document).ready(function () {
...
}
{% endblock %}
some_controller_action.html.twig 也有块 javascripts,其中包含 document.load.
问题:模板引擎忽略 a_form.html.twig 脚本并且不包含到呈现的页面。控制器的 html.twig JS 被正确处理。
我该如何解决这个问题?
您看到的问题是因为 Symfony twig 表单扩展处理主题文件中块的加载和渲染。您不能向主题中添加除表单小部件以外的任何内容。
您可以尝试导入主题文件并将当前文件设置为主题。但是您可能仍然需要调用 block('javascripts')
{% form_theme a_form _self %}
{% use 'ABundle:Form:a-form.html.twig' %}
为表单控制器添加 javascript 的唯一其他方法是将其直接添加到小部件中的 HTML。 Gregwar CaptchaBundle 这样做。这种方法的问题是每次呈现表单控制器时都会添加脚本。
我有 AFormType class 和相应的 twig 模板,它们在 some_controller_action.html.twig 中以这种方式处理:
{% form_theme a_form with ['ABundle:Form:a-form.html.twig'] %}
{{ form(a_form) }}
我想要一个-form.html.twig包含javascript,它只与表格有关,与其他无关。所以我在那里添加了以下内容:
{% block javascripts %}
<script type="text/javascript">
$(document).ready(function () {
...
}
{% endblock %}
some_controller_action.html.twig 也有块 javascripts,其中包含 document.load.
问题:模板引擎忽略 a_form.html.twig 脚本并且不包含到呈现的页面。控制器的 html.twig JS 被正确处理。
我该如何解决这个问题?
您看到的问题是因为 Symfony twig 表单扩展处理主题文件中块的加载和渲染。您不能向主题中添加除表单小部件以外的任何内容。
您可以尝试导入主题文件并将当前文件设置为主题。但是您可能仍然需要调用 block('javascripts')
{% form_theme a_form _self %}
{% use 'ABundle:Form:a-form.html.twig' %}
为表单控制器添加 javascript 的唯一其他方法是将其直接添加到小部件中的 HTML。 Gregwar CaptchaBundle 这样做。这种方法的问题是每次呈现表单控制器时都会添加脚本。