Php 如何对集合表单类型应用验证规则?
例如,当我们修改PersonType时,我们有两个实体,一辆车和一个人,如下所示: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
$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中添加它
感谢您提供找到正确答案的方法。还有其他想法吗?:)