【发布时间】:2015-01-30 10:07:20
【问题描述】:
我有一个表单,只有在选择 requireField 时才需要字段 conditionalRequiredField。
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add(
'requireField', 'choice', array
(
'label' => ' ',
'mapped' => false,
'choices' => array
(
'require' => 'Should I require that field?'
),
'multiple' => true,
'expanded' => true
)
)
->add(
'conditionalRequiredField', 'text', array
(
'label' => 'I am required because the field above was selected',
'class' => 'AppBundle\Entity\SomeEntity',
)
)
...以及其他一些字段,其中一些映射到实体。
第一个字段未映射到实体。所以在控制器中,当我访问$form->getData() 时它不可用,它只能通过 Request 对象使用。现在的问题是,我应该如何以及在哪里添加验证才能正确执行?仅使用isValid() 方法验证整个表单,而在其他地方没有任何额外的逻辑?我可能可以在某个地方进行验证,但感觉不对。我已经阅读了很多关于约束和验证器的内容,但它们似乎都与实体字段相关联。
感谢您的帮助:-)。
【问题讨论】:
标签: forms validation symfony