プロジェクトの要件により、メッセージに加えて、すべての制約違反に数値コードを追加する必要があります。クラスを調べたConstraintViolation
ところ、実際に$code
プロパティを実装していることがわかったので、それは私のニーズに最適です...注釈でこのコードを指定する簡単な方法がないことを除いて。
たとえば、Email
制約またはその親クラスがどのように実装されているかを見ると、そのコードの兆候はどこにもないため、注釈でそれを定義することはできません。
バリデーターは、コード自体である に$code
5 番目のパラメーターを渡さないため、コーダーが を設定することも禁止します。addValidation
$this->context->addViolation($constraint->message, array('{{ value }}' => $value));
だから、私の質問は簡単です: 何かが足りないのですか? 苦痛ではない注釈を介して制約違反コードを設定する方法はありますか? 理想的には、次のようなことをしたいと思います。
/**
* @Assert\NotBlank(code=400)
* @Assert\Email(code=401)
*/
protected $email;
プロパティ (有効な注釈コードであるため) とすべての制約バリデーターをConstraint.php
追加して 5 番目のパラメーターを渡すように編集するのは、ひどい考えのようです!$code
addviolation
もちろん、独自のバリデーターを実装することもできますが、定義済みのバリデーターのセットを用意する意味は何ですか? たった一行の変更です。