当我试图将一个缺失属性的模型保存到非空的数据库字段时,我不想让应用程序保持沉默,我希望它大声呼喊。但是Eloquent保存空字符串就很好。
为什么MyModel::create([])
会成功?
class BaseModel extends Eloquent {
public static function boot()
{
parent::boot();
static::creating(function($model) {
static::setNullWhenEmpty($model);
return true;
});
}
private static function setNullWhenEmpty($model)
{
foreach ($model->toArray() as $name => $value) {
if (empty($value)) {
$model->{$name} = null;
}
}
}
}
SET GLOBAL sql_mode = 'STRICT_ALL_TABLES';
并再次尝试使用MyModel::create([]);
。 - user1669496