Symfony validation_groups 如何获取实体值
Symfony validation_groups how to get entity value
在 Symfony 中,我想动态验证表单。根据实体字段的值,我想启用一个验证组,在名为 "payed" 的情况下。我使用以下代码:
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'MyBundle\Entity\Account',
'validation_groups' => function (FormInterface $form) {
// Set always default
$valarr = ['Default'];
$business = $form->get('business')->getData();
if($business == true) $valarr[] = "business";
// This needs to be added in pending on entity field value
if(???) $valarr[] = "payed";
return $valarr;
},
));
}
我怎样才能让我在激活此表单的控制器中知道的实体进入此功能?对于业务,它可以工作,因为我可以直接从表单中获取值。
正如 Matteo 在评论中所说,您可以使用 $form->getData()->$fieldname
来获取值。
if ($form->getData()->$fieldname === 'my_special_value') {
$valarr[] = "payed";
}
在 Symfony 中,我想动态验证表单。根据实体字段的值,我想启用一个验证组,在名为 "payed" 的情况下。我使用以下代码:
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'MyBundle\Entity\Account',
'validation_groups' => function (FormInterface $form) {
// Set always default
$valarr = ['Default'];
$business = $form->get('business')->getData();
if($business == true) $valarr[] = "business";
// This needs to be added in pending on entity field value
if(???) $valarr[] = "payed";
return $valarr;
},
));
}
我怎样才能让我在激活此表单的控制器中知道的实体进入此功能?对于业务,它可以工作,因为我可以直接从表单中获取值。
正如 Matteo 在评论中所说,您可以使用 $form->getData()->$fieldname
来获取值。
if ($form->getData()->$fieldname === 'my_special_value') {
$valarr[] = "payed";
}