我可以将Symfony表单的验证模式转储到JSON吗?

时间:2016-04-22 09:27:17

标签: validation symfony schema symfony-forms

我正在考虑设置一些概念验证工具,该工具可以从Symfony2 FormType实例中获取元数据,以便将验证架构转储为JSON,如下所示:

[
    {
        name: 'someFieldName',
        value: '',
        email: true
    },
    {
        name: 'yetAnotherFieldName',
        value: 'I have a default value',
        required: true
    }
]

目的显然是在前端JS代码中使用它(让我们说React),以便能够尽可能地设置相同的验证约束(required和喜欢)。

然而,Symfony结构良好,其Form组件对验证一无所知。仅考虑一个简单形式的名义案例,如何去做呢?如何将表单映射回它引用的可验证对象/实体?

1 个答案:

答案 0 :(得分:3)

使用symfony验证器,您可以获取给定类的元数据:

$this->get('validator')->getMetadataFor(Foo::class);

它返回ClassMetadata个实例。如果传递的值是实体,则返回membersproperties属性,然后包含正在使用的类的constraints属性。

最后一步是在JSON中序列化它。