【问题标题】:Laravel 4.2: Eloquent is creating insert queries with NULL valuesLaravel 4.2:Eloquent 正在使用 NULL 值创建插入查询
【发布时间】:2025-11-25 08:45:01
【问题描述】:

Mysql 版本是 5.6。社区版。 Laravel 4.2 Eloquent 正在使用 NULL 值创建插入查询,因此我收到“SQLSTATE [23000]:完整性约束违规:”错误。

有什么方法可以让 NULL 值替换为空字符串? 还是让 laravel 查询符合严格模式?

我已经为 mysql 开启了严格模式,但仍然出现错误。 我也在数据库配置文件中尝试了 'strict'=>true/false 但没有运气。

任何帮助将不胜感激。

【问题讨论】:

  • 请发布您的代码

标签: mysql laravel-4


【解决方案1】:

为此,我所做的是:

如果字段的默认值为 current_timestamp,我将数据类型设置为 timestamp('field_name'),但如果它没有 current_timestamp 默认值,我将数据类型设置为 dateTime 并将其设置为 nullable()。

//for timestamp
$table->timestamp('create_datetime')->default(DB::raw('CURRENT_TIMESTAMP'));

//for datetime
$table->dateTime('start_datetime')->nullable();

希望对你有帮助。

【讨论】: