保存模型时,MySQL / Laravel处理空值

时间:2017-10-13 00:36:15

标签: mysql laravel database-design null eloquent

保存表单时,它会正确保存,但如果表单中的值为空,则无法保存,即使该列设置为允许为空。

因此,让它工作的唯一方法似乎是检查值是否存在,否则手动将其设置为null(见下文)。

$model = \Blah\Model::where(blahblah)->first;
$model->value = $value ? $value : null;
$model->save();

我也有这样做的问题,因为如果一个值为0(零),由于php解释条件的方式,它会将它设置为null。

我不想为每个模型中的每个值做这个。那么有没有办法让它正确处理空值,这样如果该字段为空,它将在该列的模型中保存null而不是给我一个错误?

所以基本上有一种方法可以正确处理SQL / eloquent中保留0值的空值,如果它是空白的,那么正确保存空值吗?

编辑:生成的查询

General error: 1366 Incorrect integer value: '' for column 'Strength' at row 1 (SQL: update `playerstats` set `Strength` = where `id` = 1)

2 个答案:

答案 0 :(得分:0)

您应该使用以下代码:

$model = \Blah\Model::where(blahblah)->first;

if($modal->value == "0") {
  $model->value = 0;
}
else{
  $model->value = NULL;
}
$model->save();

答案 1 :(得分:0)

在模型IO [Rectangle]

上制作value

并使用nullable