我正在研究获取实体的所有验证约束的方法(我想要实现的是使用JQuery Validation Plugin在JSON中返回此数据并在客户端应用相同的约束),但是我在获取约束时遇到一些麻烦,这是我目前的代码:
$metadata = new \Symfony\Component\Validator\Mapping\ClassMetadata("Namespace\JobBundle\Entity\Job");
$annotationloader = new AnnotationLoader(new AnnotationReader());
$annotationloader->loadClassMetadata($metadata);
Run Code Online (Sandbox Code Playgroud)
我在$ metadata中得到的是一个用于constraints属性的空数组,其余的($ properties和$ members只有错误消息......但不是实际的约束(例如:required,integer ...)).
我做错了什么?
我有一个拥有这些领域的实体.
class User implements UserInterface, \Serializable
{
/**
* @var string
*
* @ORM\Column(name="first_name", type="string", length=64)
* @Assert\NotBlank(message="First name cannot be blank")
* @Assert\Length(max=64, maxMessage="First name cannot more than {{ limit }} characters long")
*/
private $firstName;
.....
}
Run Code Online (Sandbox Code Playgroud)
现在我想以这样的形式输出这些约束.
<input type="text" required="required" data-required-msg="First name cannot be blank" name="firstname" data-max-length="64" data-max-length-msg="First name cannot be more than 64 characters long">
Run Code Online (Sandbox Code Playgroud)
无论如何,我可以在Symfony 2中实现这一点,而无需再次手动创建表单中的这些消息和数据属性.