Forms 表单内部的级联验证表单
我尝试在表单中使用cascade_验证,但它不起作用。 我有一个实体公式,其中包含一系列问题,因此我将问题形式插入公式中,如下所示:Forms 表单内部的级联验证表单,forms,validation,collections,cascade,Forms,Validation,Collections,Cascade,我尝试在表单中使用cascade_验证,但它不起作用。 我有一个实体公式,其中包含一系列问题,因此我将问题形式插入公式中,如下所示: class FormularioType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options) { $builder ->add('nombre')
class FormularioType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('nombre')
->add('preguntasPonderadas', 'collection', array(
'type' => new QuestionType(),
'allow_add'=>true,
'allow_delete'=>true,
'cascade_validation'=>true,
))
;
}
}
实体问题有如下断言:
class Question
{
/**
* @var integer
*
* @Assert\Range(
* min = 1,
* max = 5,
* minMessage = "El valor mínimo es 1",
* maxMessage = "El valor máximo es 5"
* )
*
* @ORM\Column(name="peso", type="integer")
*
*/
private $peso;
}
问题是,如果我从问题表单中创建问题,那么问题实体的范围断言就起作用,但是如果我在Formulario表单中创建问题,它就不起作用,并且允许数字超出范围。
空字段约束确实起作用,无效类型也起作用(例如,如果我写了一封信),即使没有使用cascade\u验证
问题是,范围约束在Formulario表单中不起作用
有什么想法吗??坦斯克很多 您还应该在
FormularoType
类的setDefaultOptions
函数中添加'cascade\u validation'=>true
,使其正常工作
/**
* Sets the default options for this type.
*
* @param OptionsResolverInterface $resolver The resolver for the options.
*/
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'Formulario',
'cascade_validation' => true
));
}