3
這個想法是首先驗證是否所有必填字段都不爲空。如果提供了所有必需的數據,則驗證輸入的值是否正確。羣體序列的常見情況。如果我將new GroupSequence(["Basic", "Strict"])
應用於validation_groups
選項,那麼即使所有字段都爲空,表格也是有效的。如果validation_groups
值設置爲["Basic", "Strict"]
該表單被正確驗證但有所有約束,這不是我想要的。我究竟做錯了什麼?如何在symfony表單中對錶單類型使用組序列?
這裏是我的代碼:
class MyType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add("name", null, [
"constraints" => new NotBlank(["groups" => ["Basic"]])
])
->add("phone", MyPhoneType::class, [
"constraints" => [
new NotBlank(["groups" => ["Basic"]]),
new PhoneNumber(["groups" => ["Strict"])
]
])
->add("email", EmailType::class, [
"constraints" => [
new NotBlank(["groups" => ["Basic"]]),
new Email(["groups" => ["Strict"]]),
],
])
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
"validation_groups" => new GroupSequence(["Basic", "Strict"])
]);
}
}
您是否嘗試將GroupSequence映射放入表單數據類對象? (您的用戶實體或任何DTO?)我無法在文檔中找到任何直接在表單中使用它的引用(或者您有任何鏈接到您的用法)。 – goto
你試過了嗎「validation_groups」=> ['Default','Basic','Strict']? – Filchev
@goto,沒有DTO或實體可用,在這個項目中是不必要的。 Forms和Validation組件在Symfony標準分發之外獨立工作。 –