奏鸣曲管理员验证

时间:2016-03-15 11:07:55

标签: forms validation symfony sonata-admin

我在Sonata Admin中验证时遇到了问题。

在客户的前端,我有两种形式:Registration和ProfileEdit。基于FOSU​​ser。验证规则如下:

的src / UserBundle /资源/配置/ validation.yml

每个表单有两组验证。对于我来说,最好在后端使用此规则并再添加一个类似AdminProfileEdit的组,因为存在带前端形式的diffences。但是,我无法理解如何配置? 在我读到的有关inlineValidation的文档中 - 在UserAdmin类中添加了一个方法

/**
 * @param ErrorElement $errorElement
 * @param mixed $object
 */
public function validate(ErrorElement $errorElement, $object)
{
    $errorElement
        ->with('profile.firstname')
            ->assertNotBlank()
        ->end()
        ....
    ;
}

但对我来说,拥有2个验证配置是不好的解决方案。在https://sonata-project.org/bundles/admin/2-0/doc/reference/conditional_validation.html中,我无法找到如何验证后端表单的良好解释。

在Sonata \ AdminBundle \ Admin \ AdminInterface方法中,validate被标记为已弃用:

  • @deprecated此功能不能稳定,请使用自定义验证器,
  • 将使用Symfony 2.2
  • 删除该功能
这是什么意思?以及如何验证?有人可以一步一步地写一下该做什么吗?甚至我需要什么方法或配置?

请帮助某人,我需要快速完成任务,并且没有计划或解决方案。

1 个答案:

答案 0 :(得分:1)

您可以为管理员定义验证组,并将其指定为form option in the admin class

protected $formOptions = array(
    'validation_groups' => array('SomeGroup'),
);