验证符号表单而无需发布


Validate symfony form without post

我使用symfony表单创建一个表单并对其进行验证。但是我想在页面加载本身时预先验证表单,即。验证表单而不发布。有可能在symfony中做到这一点吗?

我试图在帖子的其他部分使用$form1->isValid();。但它不起作用。我也尝试使用submit()

$data = $form1->getData();
$form1->submit($data);
$form1->isValid();

但没有成功

*表单字段是动态的,验证也是动态的。因此,预加载的表单可以具有错误字段。

您可以做的肯定是手动实体验证。我可以想象这样的情况,当您不能信任已经保存在数据库中的数据,或者您希望在将对象提供给用户编辑之前使用来自其他来源的数据(外部请求响应)预填充对象。

请在此处阅读有关验证的文档:http://symfony.com/doc/current/book/validation.html

可能的代码:

$author = new Author();
// ... do something to the $author object
$validator = $this->get('validator');
$errors = $validator->validate($author);

在这种情况下,您不使用 FormType 中的约束,而是使用验证程序约束(它们可以在实体中声明 - 它们也将由 FormType 使用): http://symfony.com/doc/current/book/validation.html#constraints