2017-01-14 2 views
0

Je remplace la page de registre (remplaçant l'objet Client); J'ai ajouté "Type", qui est un ChoiceType développé (3 boutons radio), et j'ai ajouté les champs defaultAddress (dans lequel j'ai ajouté 3 champs). Quand j'affiche le formulaire, tous ces champs ont une étoile rouge pour montrer qu'ils sont obligatoires, mais quand je soumets le formulaire, si je ne mets rien dans ces champs, le formulaire est soumis et j'ai une erreur de base de données ces champs sont vides.Les champs personnalisés Sylius ne sont pas validés dans le formulaire

Voici mon code:

CustomerRegistrationTypeExtension.php:

$builder->add('type', ChoiceType::class, [ 
       'choices' => array('Particulier' => Customer::TYPE_PARTICULIER, 'Professionnel' => Customer::TYPE_PRO, 'Projet à but non lucratif' => Customer::TYPE_PROJET), 
       'expanded' => true, 
       'label' => 'Vous êtes', 
       'choice_attr' => array('onclick' => 'alert(\"click\")') 
     ]) 
     ->add('siren', TextType::class) 
     ->add('denomination', TextType::class) 
     ->add('defaultAddress', AddressType::class); 

AddressTypeExtension.php

$builder->add('showOnMap', CheckboxType::class) 
       ->add('geocodeLat', HiddenType::class) 
       ->add('geocodeLng', HiddenType::class); 

_address.html.twig:

{{ form_row(form.showOnMap, {'label' : 'address.showMap.label'}) }} 
     {{ form_row(form.geocodeLat)}} 
     {{ form_row(form.geocodeLng)}} 

_for m.html.twig

{{ form_row(form.type) }} 

Une idée?

Merci!

Répondre

0

Un astérisque rouge près du champ est juste une fonctionnalité de l'interface utilisateur. Pour exiger certains champs, vous devez spécifier leur configuration de validation. Consultez Symfony validation documentation pour obtenir des informations nécessaires, tout cela devrait parfaitement fonctionner dans Sylius;)

Une chose importante - rappelez-vous de mettre sylius dans groups paramètre lors de la définition des contraintes, il est un groupe de validation par défaut dans Sylius.