1

重複の可能性:
エンティティの関係/関連付けの場合、Symfony2の検証は機能しません

「entries」という名前のフィールドが1つだけあり、データクラスがないFormPageFormTypeがあります。

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の検証は機能しますが、すべての埋め込みフォームを一度に検証したいと思います。これはどういうわけか可能ですか?

4

1 に答える 1

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
    ));
}
于 2012-10-23T19:42:59.250 に答える