Symfony 3组验证

时间:2016-04-20 15:30:27

标签: php validation symfony

它没有像我预期的那样工作。

简单validation.yml

ForumBundle\Entity\User:
properties:
    login:
        - NotIdenticalTo:
            value: ROOT
            message: Some Error
    phone:
        - NotBlank:
            message: Phone must be declared!
            groups: [admin]
    granted_by:
        - NotBlank:
            message: Your promotor must be declared!
            groups: [admin]

我想有两种方法:

如果用户不是管理员,则只需验证登录属性(正常工作)

如果用户是admin,则使用admin组和登录属性验证所有属性。

我尝试添加这样的代码:

        $errors = $this
        ->get('validator')
        ->validate($user, null, array('admin'));

但是当用户是admin时,它只是使用admin group验证属性(未验证登录字段)。没有添加更多组的任何解决方案吗?

1 个答案:

答案 0 :(得分:0)

确保login属性的约束属于Defaultadmin组的一部分:

ForumBundle\Entity\User:
    properties:
        login:
            - NotIdenticalTo:
                value: ROOT
                message: Some Error
                groups: [Default, admin]
        phone:
            - NotBlank:
                message: Phone must be declared!
                groups: [admin]
        granted_by:
            - NotBlank:
                message: Your promotor must be declared!
                groups: [admin]