Symfony2:表单集合的验证不起作用

时间:2012-10-23 18:52:28

标签: forms validation symfony collections

  

可能重复:
  Symfony2 validation doesn’t work when Entity Relationships/Associations

我有一个Form PageFormType,它只有一个名为&#34的字段;条目"没有数据类。

public function buildForm(FormBuilderInterface $builder, array $options) {

  $builder->add('entries', 'collection', array('type' => new EntryFormType() );
}

public function setDefaultOptions(OptionsResolverInterface $resolver) {
    $resolver->setDefaults(array('data_class' => null  ));
}

表单的设置很有效,我看到EntryFormTypes的每个条目和每个字段都被渲染,但在验证我的PageFormType时,它总是有效的。验证单个EntryFormType会起作用,但我喜欢一次验证所有嵌入的表单。这有可能吗?

1 个答案:

答案 0 :(得分:3)

您必须为表单指定验证(请参阅:http://symfony.com/doc/current/book/forms.html#adding-validation)。在你的情况下,你可能想要这样的东西,使用Valid-Constraint

use Symfony\Component\Validator\Constraints\Valid;

...

public function setDefaultOptions(OptionsResolverInterface $resolver)
{
    $collectionConstraint = new Collection(array(
        'entities' => new Valid(),
    ));

    $resolver->setDefaults(array(
        'validation_constraint' => $collectionConstraint
    ));
}