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;
$builder->add('name', 'text', array('label' => 'form.name','required' => false));
Essayez d'utiliser:
use Symfony\Component\Validator\Constraints\NotNull;
$builder->add('name', 'text', array('label' => 'form.name',
'constraints' => new NotNull()));