3

symfony1.4の$form->isNew()のように、フォームがテンプレートで新しいかどうかを確認したいのですが、解決策が見つかりませんでした。

現在、私はこのテクニックを使用しています:

{% null != entity.getId %}

それは機能しますが、よりクリーンな他の解決策はありますか?

4

3 に答える 3

6

私はこれを使用します:

{% if form.vars.submitted == false %}DO WHATEVER HERE{% endif %}

フォーム関数と変数の詳細については、 https ://symfony.com/doc/current/reference/forms/twig_reference.htmlをご覧ください。

于 2017-10-13T15:26:48.947 に答える
3

Symfony2フォームは、symfony1フォームよりもモデルとの結合が少なくなっています。Symfony2のフォームを「新しい」または「古い」にすることはできません。フォームではなく、永続化されるのはエンティティです。フォームジョブは、送信されたデータをモデルオブジェクトに配置することです。

モデルクラスは教義エンティティである必要はないことを忘れないでください(実際にはどのクラスのオブジェクトでもかまいません)。オブジェクトが新しいかどうか(永続化されているかどうか)を意味するものを定義するのはあなた次第です。繰り返しますが、それは永続化される形式ではありません。

ところで、あなたはこのようにidをチェックすることができます:

{% if entity.id %}{% endif %}
于 2012-09-29T22:13:03.817 に答える
3

最近のより良い解決策(SF3)は次のようになります。

{% if form.vars.data.id %}{% endif %}
于 2016-07-20T21:56:37.320 に答える