【发布时间】:2014-04-02 01:15:36
【问题描述】:
当我尝试将具有缺失属性的模型保存到非 NULL 数据库字段时,我不希望应用程序对此保持沉默,我希望它发出强烈的尖叫声。但是 eloquent 保存的空字符串就很好了。
为什么MyModel::create([])会成功??
【问题讨论】:
-
保存前验证。
-
这是应用程序级别的保证,我希望数据库在数据完整性方面也能发挥作用。
-
如果
Laravel将缺失值转换为空字符串,那么数据库将允许它,因为空值不是null。 -
这不是 Laravel,而是你的数据库。尝试运行查询
SET GLOBAL sql_mode = 'STRICT_ALL_TABLES';并尝试再次使用MyModel::create([]);。 -
@user3158900 将其放入答案中。现在!
标签: mysql laravel laravel-4 eloquent