2017-01-14 2 views
0

Я занимаюсь переориентацией страницы регистрации (переопределяя объект Customer); Я добавил «Тип», который является расширенным ChoiceType (3 переключателя), и я добавил поля по умолчаниюAddress (в которые я добавил 3 поля). Когда я показываю форму, все эти поля имеют красную звезду, чтобы показать, что они необходимы, но когда я отправляю форму, если я не помещаю ничего в эти поля, форма отправляется в любом случае, и у меня есть ошибка базы данных, потому что эти поля пустые.Пользовательские поля Sylius не проверяются в форме

Вот мой код:

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) }} 

Есть идеи?

Спасибо!

ответ

0

Красная звездочка рядом с полем - это просто пользовательский интерфейс. Чтобы потребовать некоторые поля, вы должны указать их конфигурацию проверки. Проверьте Symfony validation documentation, чтобы получить необходимую информацию, и все это должно отлично работать в Sylius;)

Одна важная вещь - не забудьте установить sylius в groups параметром при определении ограничений, то группа проверки по умолчанию в Sylius.

Смежные вопросы