web-dev-qa-db-fra.com

Forcer un champ à ne pas être requis

J'utilise Symfony2 et FOSUserBundle.

Tout comme détaillé dans la documentation, j'ai remplacé et créé une propriété "name" dans l'entité User.

Je fais tout ce qui est nécessaire et j'obtiens enfin ce champ pour être affiché dans la vue formulaire.

La chose est: quand je vais form_widget(form.name) et que la balise HTML d'entrée est générée, une propriété required = "required" est générée en son sein. Et cela fait que le moteur rouge l'entrée lorsque le champ n'est pas rempli.

Comment faire pour dire au Symfony2 de ne pas rendre ce champ obligatoire? Je suppose que ça doit être ici:

        parent::buildForm($builder, $options);

    // add your custom field
    $builder->add('name', 'text', array('label' => 'form.name'));
    $builder->remove('username');

ou ici:

    /**
 * @ORM\Column(type="string", length="255")
 *
 * @Assert\MinLength(limit="0", message="The name is too short.", groups={"Registration", "Profile"})
 * @Assert\MaxLength(limit="255", message="The name is too long.", groups={"Registration", "Profile"})
 */
private $name;
22
ElPiter
$builder->add('name', 'text', array('label' => 'form.name','required' => false));
53
Carlos Granados

Essayez d'utiliser:

use Symfony\Component\Validator\Constraints\NotNull;


$builder->add('name', 'text', array('label' => 'form.name',
'constraints' => new NotNull()));
0
Shadi Akil