2

在 Symfony 中,我想动态验证表单。根据实体字段的值,我想启用验证组,在名为“已付款”的情况下。我使用以下代码:

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;
        },
    ));
}

我怎样才能让我在控制器中知道的实体在此表单被激活到此功能中?对于企业来说,它可以直接从表单中获取价值。

4

1 回答 1

0

就像 Matteo 在评论中所说的那样,您可以使用$form->getData()->$fieldname来获取价值。

if ($form->getData()->$fieldname === 'my_special_value') {
    $valarr[] = "payed";
}
于 2016-09-28T07:16:22.267 回答