例如,当我们修改PersonType时,我们有两个实体,一个Car和一个Person:
$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验证,而不是服务器端验证。
知道我该怎么办?
答案 0 :(得分:1)
将cascade_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')
http://symfony.com/doc/current/reference/forms/types/collection.html#cascade-validation
答案 1 :(得分:0)
工作解决方案如下:
/**
* @param OptionsResolverInterface $resolver
*/
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'Mtm\AppBundle\Entity\Person',
'cascade_validation' => true,
));
}
我必须在defaultOptions中添加它。
Thx到dmnptr提供了找到正确答案的方法。