我有一個大的表單組織在一些驗證組。對於表單中的每個組都有一個相應的複選框,告訴服務器保存組數據。我如何驗證基於Symfony2中的表單中的某些字段只有一些驗證組
當用戶發佈表單時,我只需要驗證與選中的複選框相對應的驗證組,因爲它們的某些「子」字段是必需的,但僅限於激活組。否則驗證器必須忽略必需的字段。
其實我在控制器中這樣做。我跳過Symfony的正常驗證週期並手動驗證每個字段檢查組激活複選框。
如何將此驗證邏輯移入Form類或實體使用的特定約束類中?
編輯:
正如下面說的是在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);
不能升級到2.1,但它正是我需要的 – yuri
如果你不能,你仍然可以依靠的要求,收集綁定數據到表格。在您的formType中注入請求並使用它構建validation_groups選項。 – Florian