私は簡単な問題があります。Symfony2 - > Twig - > Form - > Field - > Set rendered = true
私は例えば、フィールドを持つフォームがあります:私は、複数のブロックを使用し、私はフィールドをレンダリング停止したい私の小枝ファイルで
$builder
->add('x')
->add('y')
->add('z')
;
を... 私はb.html.twigを見ますファイル!
{% block form %}
{{ form.x.set('rendered', true) | default() }}
{{ parent() }}
{% endblock form %}
b.html.twig
a.html.twig
{% block body %}
{% block form %}
{{ form_widget(form) }}
{% endblock form %}
{% endblock body %}
iは物体カントことを、 "デフォルト()" 私はエラーを取得を削除した場合文字列に変換されます。 実際にフォームはすべてのフィールドをレンダリングします... xフィールドを含みます。しかし、彼らはxフィールドをレンダリングすべきではありません...
ありがとうございます!
問題は、私がデフォルトで "form_widget(form)"を含むグローバルフォームテーマを使用していることです。 私は一番下にフィールドが必要です。それはrendered = trueを設定するためです。その後、私はそれを底部で使用することができ、私のグローバルテーマはフィールドをレンダリングしませんでした... – PatrickB
私の答えを更新...あなたの正確な質問は、手動でフォームの行のsetRendered()を呼び出す方法です? – nifr
質問はどのようにtwig(only)^^でこれを行うかです。現時点では、私は自作のtwig関数を使用しています:public function renderState(FormView $ field){$ field-> setRendered(true); } – PatrickB