symfony1.4の$form->isNew()のように、フォームがテンプレートで新しいかどうかを確認したいのですが、解決策が見つかりませんでした。
現在、私はこのテクニックを使用しています:
{% null != entity.getId %}
それは機能しますが、よりクリーンな他の解決策はありますか?
私はこれを使用します:
{% if form.vars.submitted == false %}DO WHATEVER HERE{% endif %}
フォーム関数と変数の詳細については、 https ://symfony.com/doc/current/reference/forms/twig_reference.htmlをご覧ください。
Symfony2フォームは、symfony1フォームよりもモデルとの結合が少なくなっています。Symfony2のフォームを「新しい」または「古い」にすることはできません。フォームではなく、永続化されるのはエンティティです。フォームジョブは、送信されたデータをモデルオブジェクトに配置することです。
モデルクラスは教義エンティティである必要はないことを忘れないでください(実際にはどのクラスのオブジェクトでもかまいません)。オブジェクトが新しいかどうか(永続化されているかどうか)を意味するものを定義するのはあなた次第です。繰り返しますが、それは永続化される形式ではありません。
ところで、あなたはこのようにidをチェックすることができます:
{% if entity.id %}{% endif %}
最近のより良い解決策(SF3)は次のようになります。
{% if form.vars.data.id %}{% endif %}