我正在考虑设置一些概念验证工具,该工具可以从Symfony2 FormType
实例中获取元数据,以便将验证架构转储为JSON,如下所示:
[
{
name: 'someFieldName',
value: '',
email: true
},
{
name: 'yetAnotherFieldName',
value: 'I have a default value',
required: true
}
]
目的显然是在前端JS代码中使用它(让我们说React),以便能够尽可能地设置相同的验证约束(required
和喜欢)。
然而,Symfony结构良好,其Form组件对验证一无所知。仅考虑一个简单形式的名义案例,如何去做呢?如何将表单映射回它引用的可验证对象/实体?
答案 0 :(得分:3)
使用symfony验证器,您可以获取给定类的元数据:
$this->get('validator')->getMetadataFor(Foo::class);
它返回ClassMetadata
个实例。如果传递的值是实体,则返回members
和properties
属性,然后包含正在使用的类的constraints
属性。
最后一步是在JSON中序列化它。