1

Doctrine エンティティには、フォームとは関係なくメンバー フィールドに指定された検証メタデータがあります。Symfony2 のフォーム システムは、エンティティによって提供されるバリデーターを何らかの方法で使用します。

それはどのように機能しますか?すべてを結び付けるものは何ですか?

form なしで検証したい非教義モデルがありますが、フォームを使用する場合、その検証情報を使用して正しく表示する必要があります。だから私はする必要があります:

  • 非教義オブジェクトでバリデーターを定義する
  • アノテーションなしでバリデーターを定義する
  • モデルがフォームなしで自身を検証できるようにする
  • フォームが教義以外のオブジェクトでバリデーターを使用できるようにする
4

1 に答える 1

1

それがあなたの状況を処理するかどうかはわかりませんが (教義以外のエンティティのコードが提供されていないため)、値と値の配列に対して symfony 検証制約を使用できます:

検証

配列内のいくつかの日付値を検証する例として:

private function isInvalid($data)
{
    $response = array();
    $constraint = new Collection(array(
                'from'=>new Date(),
                'to'=>new Date(),
            ));

    $validationList = $this->get('validator')->validateValue($data, $constraint);

    if(count($validationList)>0) {
        foreach($validationList as $err) { 
            array_push($data,array(
                'field'=>$err->getPropertyPath(),
                'message'=>$err->getMessage(),
            ));
        }
        return $response;
    }
    return false;
}
于 2013-04-26T11:58:04.543 に答える