Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何对集合表单类型应用验证规则?_Php_Validation_Symfony_Webforms - Fatal编程技术网

Php 如何对集合表单类型应用验证规则?

Php 如何对集合表单类型应用验证规则?,php,validation,symfony,webforms,Php,Validation,Symfony,Webforms,例如,当我们修改PersonType时,我们有两个实体,一辆车和一个人,如下所示: $builder ->add('email') ->add('cars','collection',array( 'type' => new CarType(), 'allow_add' => true, 'allow_delete' => true, 'by_reference' => false

例如,当我们修改PersonType时,我们有两个实体,一辆车和一个人,如下所示:

$builder
    ->add('email')
    ->add('cars','collection',array(
        'type' => new CarType(),
        'allow_add' => true,
        'allow_delete' => true,
        'by_reference' => false,
    ))
    ->add('submit','submit')
并对Car实体具有以下验证规则:

Mtm\AppBundle\Entity\Car:
properties:
  file:
    - File:
      maxSize: 100k
      mimeTypes: [application/pdf, application/x-pdf]
      mimeTypesMessage: Please upload a valid PDF
验证规则不适用于表单,它只是在表单上进行html5验证,而不是服务器端验证


知道我该怎么做吗?

cascade\u validation
属性设置为true:

$builder
    ->add('email')
    ->add('cars','collection',array(
        'type' => new CarType(),
        'allow_add' => true,
        'allow_delete' => true,
        'by_reference' => false,
        'cascade_validation' => true
    ))
    ->add('submit','submit')

工作解决方案如下:

/**
 * @param OptionsResolverInterface $resolver
 */
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
    $resolver->setDefaults(array(
        'data_class' => 'Mtm\AppBundle\Entity\Person',
        'cascade_validation' => true,
    ));
}
我必须在defaultOptions中添加它


感谢您提供找到正确答案的方法。

还有其他想法吗?:)