使用列长度进行验证

时间:2013-02-19 17:33:55

标签: doctrine-orm

/**
 * @Column(type="string", length=10)
 */
protected $name;

'长度'的目的究竟是什么?

http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/annotations-reference.html#annref-column

在上面的URL中,它指出:“length:由'string'类型用于确定它在数据库中的最大长度.Diatrine不会为你验证字符串值的长度。”

我的数据库中定义了长度,那么在Doctrine中添加'length'有什么意义呢? “长度”是否有任何与验证有关?

我唯一可以理解的是,在尝试将多余的字符插入数据库之前,它会切掉多余的字符。当我想要一个例外或错误时非常烦人。

谢谢:D

1 个答案:

答案 0 :(得分:0)

Doctrine不对您的实体应用任何类型的验证:它只是加载并保存应用所需类型转换的数据(如果您的对象出现问题,则会失败)。

当您使用Doctrine的架构工具时,length属性只是为了在模式生成期间提供帮助。

您仍然可以使用Doctrine 2 ORM的元数据API最终提取该值,但请考虑使用适当的验证库来执行此类任务。