これは、このテンプレートまたはそのテンプレートのいずれかを実行するのに意味があります。
しかし、別の状況を説明させてください。プロファイル フォームと、ユーザーが個人プロファイル関連のドキュメントをアップロードできるフォームがあります。プロファイル フォームがすでに非常に長いため、ドキュメントは新しいフォームに移動しました。
すべてがうまく機能します。ここで、ブートストラップ タブを使用してプロファイルを実行したいと考えています。ユーザーフレンドリーのためのドキュメント。
2 つの別々のフォームを使用しているため、ドキュメントを送信するとプロフィールの変更が保存されず、その逆も同様であることがわかりました。
を使用してタブにドキュメントフォームを追加しました
<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 を使用できないため、問題が発生しました。他の回答で提案したように、使用してみてください
{% 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 になると、Template "" can't be found で失敗します。
テンプレートを拡張しない場合と同じ結果になる、この特定のテンプレートを拡張すると言う方法はありますか?
または、代わりに、viewOnly が true のときにこれを拡張すると言う方法がありますが、失敗しても何も起こりませんか?