いくつかの検証グループで編成された大きなフォームがあります。フォーム内のすべてのグループには、サーバーにグループ データを保存するように指示する対応するチェックボックスがあります。
ユーザーがフォームを投稿するとき、「サブ」フィールドの一部が必須であるため、チェックされたチェックボックスに対応する検証グループのみを検証する必要がありますが、グループをアクティブにする場合のみです。それ以外の場合、バリデータは必須フィールドを無視する必要があります。
実際、私はコントローラーでそれを行います。Symfony の通常の検証サイクルをスキップし、手動でグループのアクティブ化チェックボックスをチェックするすべてのフィールドを検証します。
この検証ロジックを Form クラス内またはエンティティで使用される特定の Constraint クラス内に移動するにはどうすればよいですか?
編集:
以下で述べたように、symfony 2.1では可能ですが、今のところ解決しました:
$request = $this->get('request');
// myEntity knows the business logic to chose validation groups
$myEntity->collectValidationGroups($request);
$form = $this->createForm(new MyEntityType(), $myEntity);