【发布时间】:2016-06-30 18:56:56
【问题描述】:
我在 Sonata Admin 中验证时遇到问题。
在客户端的前端我有两种形式:注册和 ProfileEdit。基于 FOSUser。验证规则在:
src/UserBundle/Resources/config/validation.yml
每个表单都有两组验证。对我来说,在后端最好使用此规则并添加一个像 AdminProfileEdit 这样的组,因为前端表单存在差异。但是,我不明白如何配置? 在文档中我读到了 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 将删除该功能
这是什么意思?以及如何验证?有人可以逐步写出该怎么做吗?甚至我需要什么方法或配置?
请帮助某人,我需要快速完成任务,并且没有计划或解决方案。
【问题讨论】:
标签: forms validation symfony sonata-admin