簡體   English   中英

Symfony 3:在表單驗證中忽略了GroupSequence驗證組

[英]Symfony 3: GroupSequence validation groups ignored in validation of form

我想使用組驗證來驗證表單,因此我定義了兩個驗證組。 僅當第一組尚未導致違規時,才應驗證第二組。 所以我這樣做了:

        $form = $this->createFormBuilder(null,array('validation_groups' => new GroupSequence(array('group1','group2'))))
        ->add('email', EmailType::class,array('constraints' => array(
            new Assert\Email(array('groups' => array('group1'))),
            new Assert\NotBlank(array('groups' => array('group1'))),
            new CustomAssert\AlreadyRegistered(array('groups' => array('group2'))))))
        ->add('submit',SubmitType::class,array())
        ->getForm();

但顯然沒有任何約束被驗證,無論我在電子郵件字段中輸入什么,表單都是有效的。

怎么了?

根據3.2文檔,您不需要在validation_groups下啟動新的GroupSequence對象。 嘗試這個:

    $form = $this->createFormBuilder(null, array(
        'validation_groups' => array('group1','group2')
    ))
    ->add(
        'email', 
        EmailType::class,
        array(
            'constraints' => array(
                new Assert\Email(array('groups' => array('group1'))),
                new Assert\NotBlank(array('groups' => array('group1'))),
                new CustomAssert\AlreadyRegistered(array('groups' => array('group2')))
    )))
    ->add(
        'submit',
        SubmitType::class
    )
    ->getForm();

參考: http//symfony.com/doc/current/form/validation_groups.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM