我在我的实体定义中使用教义注释来定义每个变量的行为,即:
@ORM\Column(type="string", length=50, nullable=false)
如果我提交表单,将字段留空,它会通过验证,但是(当然)我收到关于 INSERT 语句的错误,因为他无法插入 NULL 值。这怎么可能?
我在我的实体定义中使用教义注释来定义每个变量的行为,即:
@ORM\Column(type="string", length=50, nullable=false)
如果我提交表单,将字段留空,它会通过验证,但是(当然)我收到关于 INSERT 语句的错误,因为他无法插入 NULL 值。这怎么可能?
这是因为 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;
}