symfony - Symfony2获取实体上的验证约束

标签 symfony symfony-2.1

我正在研究一种获取实体的所有验证约束的方法(我试图实现的是用JSON返回此数据,并使用JQuery验证插件在客户端应用相同的约束),但是在获取约束时遇到了一些麻烦,
这是我当前的代码:

    $metadata = new \Symfony\Component\Validator\Mapping\ClassMetadata("Namespace\JobBundle\Entity\Job");
    $annotationloader = new AnnotationLoader(new AnnotationReader());
    $annotationloader->loadClassMetadata($metadata);


我在$ metadata中得到的是constraints属性的一个空数组,其余的($ properties和$ members仅具有错误消息...但没有实际的约束(例如:required,integer ...))。

我做错了什么?

最佳答案

我可能会使用验证器服务,而不是实例化新的类元数据。您永远不会知道某些类是否通过服务初始化。

$metadata = $this->container
                 ->get('validator')
                 ->getMetadataFactory()
                 ->getClassMetadata("Name‌​space\JobBundle\Entity\Job");


$metadata应该具有您要查找的数据

Symfony 2.3及更高版本

$metadata = $this->container
                 ->get('validator')
                 ->getMetadataFor("Name‌​space\JobBundle\Entity\Job");

关于symfony - Symfony2获取实体上的验证约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15482725/

相关文章:

authentication - Symfony2.1 - HWIOAuthBundle 和 google oauth 身份验证

php - 获取所有错误以及错误所连接的字段

symfony - 使配置节点在 Symfony 2 配置中同时支持字符串和数组?

mysql - 多行更新导致唯一的 "Integrity constraint violation"

php - 是否可以在 Symfony 2 中保护整个 Controller ?

symfony - 无法在产品中找到模板

php - Sonata Admin Bundle 不适用于多对多实体关系

php - SImple Symfony2 'Front Page' Controller 、路由器和模板。为什么我仍然看到欢迎页面?

php - Symfony2 中具有相同模式的多个安全防火墙

linux - Vagrant,共享文件夹 : take advantage of inotify over NFS