【发布时间】:2017-05-17 23:34:29
【问题描述】:
为 Eloquent 模型实现默认值的正确方法是什么?
我已经使用 Laravel 的迁移配置了我的数据库表。某些列已指定默认值。当将这些表与 Eloquent 模型结合使用时,会发生不同的事情,具体取决于所选的数据库驱动程序:
在 MySQL 中,当创建一个新模型并保存它时,会插入一个 DB 行,该行具有每个未明确指定的属性的列默认值。 这就是我希望发生的事情。
然而,在 Postgres 和 SQLite 中,情况并非如此。抛出 PDOException:
[PDO异常]
SQLSTATE [23502]:非空违规:7 错误:列中的空值 “some_column”违反了非空约束
详细信息:失败行包含 (1, 2, 3, 4, 5, 6, null, null, null, null, null, null, 7, 8, null, 9, null, null, 10, 11, 12, null) .
我很清楚,该列不可为空,并且不接受空值。但是,我希望插入默认值而不是引发错误。
【问题讨论】:
-
迁移中的变量是哪种数据类型??
-
@lewis4u 这是一个
tinyInteger。
标签: postgresql laravel eloquent doctrine