Thanks to visit codestin.com
Credit goes to github.com

Skip to content

[Validator] Using validation_group causes error message to display multiple times #8376

Closed
@AAtticus

Description

@AAtticus

I'm using a validation group to allow creation of a quick opportunity with only a title and later a complete form. I've specified a "complete_opportunity" validation group with annotations:

**
 * @ORM\Entity
 * @ORM\Table(name="opportunities")
 */
class Opportunity
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    /**
     *
     * @ORM\Column(type="string", length=255)
     * @Assert\NotNull()
     * @Assert\Type(type="string")
     */
    protected $title;

    /**
     *
     * @ORM\Column(type="text", nullable=true)
     * @Assert\NotBlank(groups={"complete_opportunity"}, message="Please enter a description for this internship")
     * @Assert\Type(type="string")
     */
    protected $description;

    /**
     *
     * @ORM\Column(type="text", nullable=true)
     * @Assert\NotNull(groups={"complete_opportunity"}, message="Please give more information about the selection procedure")
     * @Assert\Type(type="string")
     */
     protected $selectionProcedure;
....

If I don't specify a validation group $form->getErrors() gives me this (when I remove the title for example:

Array
(
    [0] => Symfony\Component\Form\FormError Object
        (
            [message:Symfony\Component\Form\FormError:private] => Please enter a title.
            [messageTemplate:protected] => Please enter a title
            [messageParameters:protected] => Array
                (
                )

            [messagePluralization:protected] => 
        )

)

If I specify a validation group in the OpportunityCompleteFormType like this:

public function setDefaultOptions(OptionsResolverInterface $resolver)
    {
        $resolver->setDefaults(array(
            'data_class' => 'Project\ProjectBundle\Entity\Opportunity',
            'validation_groups' => array('complete_opportunity'),
        ));
    }

$form->getErrors() will give the same error multiple times:

           Array
(
    [0] => Symfony\Component\Form\FormError Object
        (
            [message:Symfony\Component\Form\FormError:private] => Please enter a description for this internship
            [messageTemplate:protected] => Please enter a description for this internship
            [messageParameters:protected] => Array
                (
                )

            [messagePluralization:protected] => 
        )

    [1] => Symfony\Component\Form\FormError Object
        (
            [message:Symfony\Component\Form\FormError:private] => Please give more information about the selection procedure
            [messageTemplate:protected] => Please give more information about the selection procedure
            [messageParameters:protected] => Array
                (
                )

            [messagePluralization:protected] => 
        )

    [2] => Symfony\Component\Form\FormError Object
        (
            [message:Symfony\Component\Form\FormError:private] => Please enter a description for this internship
            [messageTemplate:protected] => Please enter a description for this internship
            [messageParameters:protected] => Array
                (
                )

            [messagePluralization:protected] => 
        )

    [3] => Symfony\Component\Form\FormError Object
        (
            [message:Symfony\Component\Form\FormError:private] => Please give more information about the selection procedure
            [messageTemplate:protected] => Please give more information about the selection procedure
            [messageParameters:protected] => Array
                (
                )

            [messagePluralization:protected] => 
        )

    [4] => Symfony\Component\Form\FormError Object
        (
            [message:Symfony\Component\Form\FormError:private] => Please enter a description for this internship
            [messageTemplate:protected] => Please enter a description for this internship
            [messageParameters:protected] => Array
                (
                )

            [messagePluralization:protected] => 
        )

    [5] => Symfony\Component\Form\FormError Object
        (
            [message:Symfony\Component\Form\FormError:private] => Please give more information about the selection procedure
            [messageTemplate:protected] => Please give more information about the selection procedure
            [messageParameters:protected] => Array
                (
                )

            [messagePluralization:protected] => 
        )

    [6] => Symfony\Component\Form\FormError Object
        (
            [message:Symfony\Component\Form\FormError:private] => Please enter a description for this internship
            [messageTemplate:protected] => Please enter a description for this internship
            [messageParameters:protected] => Array
                (
                )

            [messagePluralization:protected] => 
        )

    [7] => Symfony\Component\Form\FormError Object
        (
            [message:Symfony\Component\Form\FormError:private] => Please give more information about the selection procedure
            [messageTemplate:protected] => Please give more information about the selection procedure
            [messageParameters:protected] => Array
                (
                )

            [messagePluralization:protected] => 
        )

    [8] => Symfony\Component\Form\FormError Object
        (
            [message:Symfony\Component\Form\FormError:private] => Please enter a description for this internship
            [messageTemplate:protected] => Please enter a description for this internship
            [messageParameters:protected] => Array
                (
                )

            [messagePluralization:protected] => 
        )

    [9] => Symfony\Component\Form\FormError Object
        (
            [message:Symfony\Component\Form\FormError:private] => Please give more information about the selection procedure
            [messageTemplate:protected] => Please give more information about the selection procedure
            [messageParameters:protected] => Array
                (
                )

            [messagePluralization:protected] => 
        )

    [10] => Symfony\Component\Form\FormError Object
        (
            [message:Symfony\Component\Form\FormError:private] => Please enter a description for this internship
            [messageTemplate:protected] => Please enter a description for this internship
            [messageParameters:protected] => Array
                (
                )

            [messagePluralization:protected] => 
        )

    [11] => Symfony\Component\Form\FormError Object
        (
            [message:Symfony\Component\Form\FormError:private] => Please give more information about the selection procedure
            [messageTemplate:protected] => Please give more information about the selection procedure
            [messageParameters:protected] => Array
                (
                )

            [messagePluralization:protected] => 
        )

    [12] => Symfony\Component\Form\FormError Object
        (
            [message:Symfony\Component\Form\FormError:private] => Please enter a description for this internship
            [messageTemplate:protected] => Please enter a description for this internship
            [messageParameters:protected] => Array
                (
                )

            [messagePluralization:protected] => 
        )

    [13] => Symfony\Component\Form\FormError Object
        (
            [message:Symfony\Component\Form\FormError:private] => Please give more information about the selection procedure
            [messageTemplate:protected] => Please give more information about the selection procedure
            [messageParameters:protected] => Array
                (
                )

            [messagePluralization:protected] => 
        )

    [14] => Symfony\Component\Form\FormError Object
        (
            [message:Symfony\Component\Form\FormError:private] => Please enter a description for this internship
            [messageTemplate:protected] => Please enter a description for this internship
            [messageParameters:protected] => Array
                (
                )

            [messagePluralization:protected] => 
        )

    [15] => Symfony\Component\Form\FormError Object
        (
            [message:Symfony\Component\Form\FormError:private] => Please give more information about the selection procedure
            [messageTemplate:protected] => Please give more information about the selection procedure
            [messageParameters:protected] => Array
                (
                )

            [messagePluralization:protected] => 
        )

    [16] => Symfony\Component\Form\FormError Object
        (
            [message:Symfony\Component\Form\FormError:private] => Please enter a description for this internship
            [messageTemplate:protected] => Please enter a description for this internship
            [messageParameters:protected] => Array
                (
                )

            [messagePluralization:protected] => 
        )

    [17] => Symfony\Component\Form\FormError Object
        (
            [message:Symfony\Component\Form\FormError:private] => Please give more information about the selection procedure
            [messageTemplate:protected] => Please give more information about the selection procedure
            [messageParameters:protected] => Array
                (
                )

            [messagePluralization:protected] => 
        )

    [18] => Symfony\Component\Form\FormError Object
        (
            [message:Symfony\Component\Form\FormError:private] => Please enter a description for this internship
            [messageTemplate:protected] => Please enter a description for this internship
            [messageParameters:protected] => Array
                (
                )

            [messagePluralization:protected] => 
        )

    [19] => Symfony\Component\Form\FormError Object
        (
            [message:Symfony\Component\Form\FormError:private] => Please give more information about the selection procedure
            [messageTemplate:protected] => Please give more information about the selection procedure
            [messageParameters:protected] => Array
                (
                )

            [messagePluralization:protected] => 
        )

    [20] => Symfony\Component\Form\FormError Object
        (
            [message:Symfony\Component\Form\FormError:private] => Please enter a description for this internship
            [messageTemplate:protected] => Please enter a description for this internship
            [messageParameters:protected] => Array
                (
                )

            [messagePluralization:protected] => 
        )

    [21] => Symfony\Component\Form\FormError Object
        (
            [message:Symfony\Component\Form\FormError:private] => Please give more information about the selection procedure
            [messageTemplate:protected] => Please give more information about the selection procedure
            [messageParameters:protected] => Array
                (
                )

            [messagePluralization:protected] => 
        )

    [22] => Symfony\Component\Form\FormError Object
        (
            [message:Symfony\Component\Form\FormError:private] => Please enter a description for this internship
            [messageTemplate:protected] => Please enter a description for this internship
            [messageParameters:protected] => Array
                (
                )

            [messagePluralization:protected] => 
        )

    [23] => Symfony\Component\Form\FormError Object
        (
            [message:Symfony\Component\Form\FormError:private] => Please give more information about the selection procedure
            [messageTemplate:protected] => Please give more information about the selection procedure
            [messageParameters:protected] => Array
                (
                )

            [messagePluralization:protected] => 
        )

)

I've tried with error_bubbling true and false for each element but to no avail.
Any ideas what's causing this?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions