2014-11-14 87 views
2

我使用Symfony的2.5和我的模型类如下:的Symfony验证:一是产权约束,则类约束

/** 
* @UserAssert\UserPasswordReset 
*/ 
class ResetPassword { 

/** 
* @var string 
* @Assert\NotBlank() 
*/ 
public $username; 

/** 
* @var string 
* @Assert\NotBlank() 
* @Assert\Date 
*/ 
public $birthday; 

/** 
* @var string 
* @Assert\NotBlank() 
*/ 
public $plainSecurityAnswer; 


function __toString() 
{ 
    return $this->username . $this->birthday->format('Y-m-d H:i:s') . $this->plainSecurityAnswer; 
} 

}

这个模型映射到一个ResetFormType。 现在我的意图:我怎么说/配置,我首先想要通过属性约束。如果所有属性约束都被传递(例如没有字段为空),我想要调用@UserAssert \ UserPasswordReset。

目前,它始终验证属性和类约束。

问候++

回答

2

我想你可以使用一个GroupSequence Validator这样做:

/** 
* @UserAssert\UserPasswordReset(groups={"PasswordReset"}) 
* @Assert\GroupSequence({"Default", "PasswordReset"}) 
*/ 
class ResetPassword 
{ 
    //---- 
} 

在这种模式下UserPasswordReset将默认断言后才能生效。

在文档中,您会发现一些使用组序列的实现示例..

+0

非常感谢!这就是我一直在寻找的。该死的我查阅文件,但重读GroupSequences ..- .-接受你的答案。 – 2014-11-14 17:31:05

+0

很高兴有帮助:-) – 2014-11-14 17:31:58