【问题标题】:Symfony validation_groups how to get entity valueSymfony validation_groups 如何获取实体值
【发布时间】:2017-02-05 15:07:32
【问题描述】:

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

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

【问题讨论】:

  • 方法$form->getData()应该返回对象Account你可以试试吗?

标签: php symfony oop symfony-forms symfony-validator


【解决方案1】:

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

if ($form->getData()->$fieldname === 'my_special_value') {
    $valarr[] = "payed";
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-22
    • 1970-01-01
    • 1970-01-01
    • 2020-09-12
    • 2015-12-23
    • 1970-01-01
    • 1970-01-01
    • 2017-10-25
    相关资源
    最近更新 更多