を使用していないとき「NotBlank」制約は次のように私は、エンティティのフィールドを持つフィールドが属性を「必要」ています上:検証グループ
/**
* @ORM\Column(nullable=true)
* @Assert\NotBlank(groups={"myGroup"})
*/
protected $field;
それから私は私のconfigureOptions
機能(任意の検証グループなしでエンティティフォームを呼び出しますセットdata_class
)。しかし、フィールドには、HTMLでrequired="required"
属性で作成されている:
<input id="entity_field" name="entity[field]" required="required" type="text">
しかし、私はHTMLをいじるとrequired="required"
を取る場合、検証はバックエンド(すなわち、NotBlank
に意図したとおりに動作は適用されません。このフォームの場合)。
しかし、 '@Assert \ NotBlank'を取り出すと' required'属性が消えます。言い換えれば、フレームワーク内の何かが 'NotBlank'を読み込み、' required = "required" 'を型に入れます。私が正しい検証グループに入っているとき、それはスマートではなく、「NotBlank」だけを読むべきですか?バグですか? – Heitor
@Heitor:私の知識では、symfonyのサーバ側の検証とクライアント側の検証との間には関係がありません – Shady
サーバ側とクライアント側は別々に検証するかもしれませんが、特定の@Assert制約を設定すると両方で動作します。フィールドに 'NotBlank'を設定しようとすると、あなたのHTMLに' required = "required" 'が自動的に入ります。 'Length'制約を設定すると、' maxlength = "X" 'となります。 もちろん、私はSymfony Standard Editionのデフォルト動作を想定しています。 – Heitor