我正在尝试使用 javascript 实现客户端表单验证,我想通过将它们放在字段数据属性中来使用实体或表单中定义的验证。
问题是我不知道也找不到任何关于如何从 FormType 扩展中获取约束的信息。
我认为 FormBuilder 应该可以访问用于开始验证的数据,但似乎没有任何方法可以检索约束。
谢谢你的帮助
我正在尝试使用 javascript 实现客户端表单验证,我想通过将它们放在字段数据属性中来使用实体或表单中定义的验证。
问题是我不知道也找不到任何关于如何从 FormType 扩展中获取约束的信息。
我认为 FormBuilder 应该可以访问用于开始验证的数据,但似乎没有任何方法可以检索约束。
谢谢你的帮助
您可以使用:
$validators = $form->getConfig()->getValidators();
在您的表单对象上
最后我找到了解决方案。它可能不是最好的,但对我有用。
我将 Validator 服务注入到 FormTypeExtension 中。
那我可以做
$this->validator->getMetadataFactory()->getClassMetadata($options['data_class']);
我还必须将服务别名从“字段”更改为“表单”以获取选项中的 data_class。
希望这可以帮助遇到同样问题的人。
如果需要,我可以发布更多详细信息。