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

“长度”的目的究竟是什么?

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

在上面的 URL 中,它声明:“长度:由 'string' 类型用于确定其在数据库中的最大长度。Doctrine 不会为您验证字符串值的长度。”

我在我的数据库中定义了长度,那么在 Doctrine 中添加“长度”有什么意义?“长度”与验证有关吗?

我唯一能弄清楚的是,它会在尝试将多余的字符插入数据库之前将其切断。当我想要异常或错误时非常烦人。

感谢:D

4

1 回答 1

0

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

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

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

于 2013-02-19T17:58:03.800 回答