1

我在我的实体定义中使用教义注释来定义每个变量的行为,即:

@ORM\Column(type="string", length=50, nullable=false)

如果我提交表单,将字段留空,它会通过验证,但是(当然)我收到关于 INSERT 语句的错误,因为他无法插入 NULL 值。这怎么可能?

4

1 回答 1

6

这是因为 Symfony 不会根据 Doctrine 注释自动验证您的表单输入。

Symfony2 附带了一个Validator组件,它使这项任务变得简单而透明。该组件基于JSR303 Bean Validation 规范

在http://symfony.com/doc/current/book/validation.html阅读实现

这是一个可能对您有所帮助的 Validator 注释示例:

// Acme/TaskBundle/Entity/Example.php
use Symfony\Component\Validator\Constraints as Assert;

class Example
{
    /**
     * @Assert\NotBlank()
     * @Assert\MaxLength(50)
     * @ORM\Column(type="string", length=50, nullable=false)
     */
    public $parameter;
}
于 2013-04-04T14:35:14.400 回答