Symfony2表单未验证必填字段

时间:2017-02-07 11:47:08

标签: php forms validation symfony

我有一个包含必填字段的Symfony2表单,在大多数浏览器中都能正常工作,因为" required"属性在输入上,因此用户无法在不填写字段的情况下提交表单。

但是,对于那些不支持"必需"的浏览器提交表单的属性。这导致了一个问题,因为当调用表单的isValid()函数时,即使必填字段为空,它也会返回true。

这是正常行为吗?我假设在表单的handleRequest函数期间会有一些服务器端检查必填字段,但它似乎没有。如果没有,有没有办法启用它?

1 个答案:

答案 0 :(得分:4)

您需要手动检查这些内容,或者需要在实体中定义validation constraints,以启用自动验证。

如果Symfony现在没有检查什么,它可以进行验证。

以上是上面链接的文档中的一个示例。

// src/AppBundle/Entity/Author.php

// ...
use Symfony\Component\Validator\Constraints as Assert;

class Author
{
    /**
     * @Assert\NotBlank()
     */
    public $name;
}

有了这个约束,你告诉Symfony,name字段不能为空。因此,如果该字段将被提交为空,则表单验证将失败。

永远不要相信客户端验证,因为这些可以轻松修改和失效