2016-09-10 4 views
2

검증 그룹이 작동하지 않는 것 같습니다. 그것은 그러나 나는 다음에 다른 유효성 검사 그룹을 지정하는 방법을 알아낼 어차피 기본 그룹에 대해 작동합니다Symfony 유효성 검사 그룹 (양식 아님)

$errors = $validator->validate($entity); 

I했습니다 내가 함께 테스트하고있어 간단한 개체 :

/** 
* Class Login 
* @package AppBundle\Entity 
*/ 
class Login 
{ 
    /** 
    * @Assert\NotBlank(
    *  message="not.blank", 
    *  groups={"Default", "login"} 
    *) 
    * 
    * @Assert\Email(
    *  message="email", 
    *  groups={"Default", "login"} 
    *) 
    */ 
    public $email; 

    /** 
    * @Assert\NotBlank(
    *  message="not.blank", 
    *  groups={"Default", "login"} 
    *) 
    */ 
    public $password; 
} 

이와 같은 매개 변수를 추가하면 다음과 같이 불평합니다.

$errors = $validator->validate($entity, 'login'); 

하지만이 방법이 있어야합니다.

파일 : /vendor/symfony/symfony/src/Symfony/Component/Validator/Validator/ValidatorInterface.php

라인 : 공공

+0

security.yml 또는 validation.yml에 유효성 검사 그룹을 정의해야한다고 생각합니다. – Nickolaus

답변

1

사실, Symfony3 유효성 검사 그룹을 사용하는 올바른 방법은 배열로 나열하는 것입니다 Btw는

$errors = $validator->validate($entity, null, ['login']); 

, 사용 사례에 따라 각 속성에 대한 Default 그룹을 설정하고 바로 사용할 필요하지 않을 수도 있습니다 그룹 대신 login입니다. 그런 다음 그룹 Default으로 엔티티의 유효성을 검사하면 클래스 이름과 동일한 그룹 이름을 가진 어썰트가 자동으로 포함됩니다 (이 경우 Login). 자세한 내용은 다음을 참조하십시오. http://symfony.com/doc/current/validation/groups.html

0

심포니 코드로 파고 후 나는 다음과 같은 발견 function validate ($ value, $ constraints = null, $ groups = null);

나는이 변경 그래서 경우 : 여기에

$errors = $validator->validate($entity, 'login'); 

가 :

$errors = $validator->validate($entity, null, 'login'); 

의미가 있습니다!