这对做这个模板或那个模板都是有意义的。
但让我描述另一种情况。您有一个配置文件表单和一个用户可以上传个人配置文件相关文档的表单。由于配置文件表格已经很长,文档已移至新表格。
一切都很好。现在我们要使用引导选项卡来执行 Profile | 用户友好的文档。
现在我知道了,因为我们使用两个单独的表格,如果您提交文件,配置文件上的更改将不会保存,反之亦然。
我已使用在选项卡中添加了文档表单
<div role="tabpanel" class="tab-pane" id="documents">
{{ render(controller('ManyAppBundle:Document:createDocument', {'viewOnly': true})) }}
</div>
'viewOnly': true 是查询参数,操作不需要。
我现在的问题是,如果配置文件选项卡呈现文档模板,它必须只显示上传小部件和提交,当您直接进入文档页面时,它必须显示标题和侧边栏以及所有内容。所以我确实尝试了
{% if not viewOnly %}
{% extends ... %}
{% endif %}
这带来了问题,因为您不能在 if 中使用扩展。就像您在其他答案中建议的那样尝试使用
{% extends viewOnly == true ? ... %}
当 viewOnly 为 false 时,这解决了 Twig 问题直到代码的执行。
当 viewOnly 为 false 时,它必须扩展所有其他模板使用的基本模板,但如果为 true,我只想显示:
{{ form_start(form, { 'style': 'horizontal', 'col_size': 'sm' }) }}
{% if form.documents is defined %}
{{ form_row(form.documents) }}
{% endif %}
{{ form_row(form.submit, { 'attr': { 'class': 'btn btn-success' } }) }}
{{ form_end(form) }}
但现在有了顶部
{% extends viewOnly == true ? ... %}
如果 viewOnly 变为 false,则无法找到模板“”失败。
有没有办法说扩展这个特定的模板与不扩展任何模板的结果相同?
或者,当 viewOnly 为真但失败时没有任何反应时,有没有办法说扩展这个?