我重写了注册页面(覆盖了Customer对象);我添加了“Type”,这是一个ChoiceType扩展(3个单选按钮),我添加了defaultAddress字段(我在其中添加了3个字段)。 当我显示表单时,所有这些字段都有一个红色星形以显示需要,但是当我提交表单时,如果我没有在这些字段中放置任何内容,那么表单仍然会被提交并且我有数据库错误,因为这些字段是空的。
这是我的代码:
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)}}
_form.html.twig
{{ form_row(form.type) }}
有什么想法吗?
谢谢!
答案 0 :(得分:0)
字段附近的红色星号只是一个UI功能。要求某些字段,您必须指定其验证配置。查看Symfony validation documentation以获取所需信息,所有信息都应在Sylius中完美运行;)
一件重要的事情 - 记住在定义约束时在groups
参数中设置 sylius ,它是Sylius中的默认验证组。