symfony 中自定义表单主题内的可重用块
Reuseable blocks inside of custom form themes in symfony
我想在覆盖的主题块中调用自定义块:
{% block file_widget %}
{% if image is not null %}
{{ block('imagePreview') }}
{% endif %}
{{ block('form_widget') }}
{% endblock %}
{% block imagePreview %}
<img src="{{ image.getFullPath | imagine_filter('medium_square') }}"
alt="{{ image.filename }}"/>
{% endblock %}
未显示imagePreview
。
但是当我不使用块时它正在工作。
当我不使用 FormTypeExtension 而是创建 ImageType 时,它也能正常工作。
所以我猜 file_widget
块仍然具有父 form_div_layout.html.twig
的范围,实际上 imagePreview
块不存在。
那我该如何解决呢。
我的意思是现在我通过删除块解决了它。
但我只想知道是否有人对此有解决方案。
也许有一种方法可以在 symfony 的自定义表单主题中使用可重用块?
终于找到了解决办法:
我只是没有 'use' 显式基本模板。
表单主题在没有这个的情况下工作 - 因为当 symfony 在新主题文件中找不到块时,它会回退到基本表单主题。
但似乎您也不能在这个新主题文件中使用自定义块。
现在可以使用了:
{% use 'form_div_layout.html.twig' %}
{% block file_widget %}
{% if image is not null %}
{{ block('imagePreview') }}
{% endif %}
{{ block('form_widget') }}
{% endblock %}
{% block imagePreview %}
<img src="{{ image.getFullPath | imagine_filter('medium_square') }}"
alt="{{ image.filename }}"/>
{% endblock %}
我想在覆盖的主题块中调用自定义块:
{% block file_widget %}
{% if image is not null %}
{{ block('imagePreview') }}
{% endif %}
{{ block('form_widget') }}
{% endblock %}
{% block imagePreview %}
<img src="{{ image.getFullPath | imagine_filter('medium_square') }}"
alt="{{ image.filename }}"/>
{% endblock %}
未显示imagePreview
。
但是当我不使用块时它正在工作。
当我不使用 FormTypeExtension 而是创建 ImageType 时,它也能正常工作。
所以我猜 file_widget
块仍然具有父 form_div_layout.html.twig
的范围,实际上 imagePreview
块不存在。
那我该如何解决呢。
我的意思是现在我通过删除块解决了它。
但我只想知道是否有人对此有解决方案。 也许有一种方法可以在 symfony 的自定义表单主题中使用可重用块?
终于找到了解决办法:
我只是没有 'use' 显式基本模板。 表单主题在没有这个的情况下工作 - 因为当 symfony 在新主题文件中找不到块时,它会回退到基本表单主题。
但似乎您也不能在这个新主题文件中使用自定义块。
现在可以使用了:
{% use 'form_div_layout.html.twig' %}
{% block file_widget %}
{% if image is not null %}
{{ block('imagePreview') }}
{% endif %}
{{ block('form_widget') }}
{% endblock %}
{% block imagePreview %}
<img src="{{ image.getFullPath | imagine_filter('medium_square') }}"
alt="{{ image.filename }}"/>
{% endblock %}