既存のModel/Entity/POPOに対して送信されたデータを検証しようとしていますが、単純な方法では動作しません。Symfony2 Modelクラスに対して送信されたデータの検証
これはすべてコントローラアクション内で行われます。
だから、私はこのように行うことができます:クラス内のすべての制約を持つことが多い方が良いだろうとして、すべてのアクションには、意味がないことをやってしかし
$constraints = new Assert\Collection([
'username' => [new Assert\NotBlank()],
'email' => [new Assert\Email()],
]);
$violationList = $this->get('validator')->validate($request->request->all(), $constraints);
。だから、検証コンポーネントは次のように行うことができます:$顧客は空のオブジェクトであるよう
// All constraints are defined inside Customer class
$customer = new Customer();
$violationList = $this->get('validator')->validate($customer);
違反リストは、今のエラーでいっぱいですが、問題は、私はPOSTからのデータを使用する方法を見つけることができませんANDですそのクラスで定義されている制約に対して検証します。
POSTデータを受け取る余分なコンポーネント/ヘルパーを記述してから、->setUsername()
,->setEmail()
などの束を呼び出すことはできますが、モデルがPOSTデータに簡単にマップできると考えても、
- フォームコンポーネントが関与します。
- またはConstraintsCollectionを手動で使用する。
ここに明白なものがないか、すぐに使用できる可能性はありませんか?ありがとう!
はい、私がしようとしていますここでフォームコンポーネントを避けてください。データはHTMLフォームから来ていないので、FormComponentの使用法はすべてのフィールドと型定義では過度であるようです。それ以外にも、各ツール/コンポーネントは – KlausK
である必要があります。残念ながら、私はコメントを編集できませんので、少し繰り返していきます... それ以外に、各ツール/コンポーネントには特定の目的があります_Form_だけで検証するのは正しいことではありません。 _Validator_はすでに ' - > validate($ dataToValidate、$ constraints);'の構文をサポートしているので、Modelクラスに対して一般的に検証されているように、モデルクラスに対しても同じことができるように思われます。 – KlausK
@KlausK私の答えを編集しました – zizoujab