查询构建器不尊重$ fillable

时间:2017-07-16 06:30:17

标签: php laravel query-builder

当我使用以下代码致电update()时,它运作良好且尊重$fillable

$lead = Lead::findOrFail($id);
$lead->update(request()->all());

但是,当我使用以下代码致电update()时,它根本不尊重$fillable

$lead = Lead::whereRaw('json_extract(lower(data), "$.email") = lower(?)', request()->input('email'));
$lead->update(request()->all());

现在我只能假设这与查询构建器有关。如何获得第2位代码以尊重$fillable

1 个答案:

答案 0 :(得分:0)

在第一个查询中,使用findOrFail(),它始终返回模型。

在第二个查询中,whereRaw()函数不知道一行或多行是否符合这些条件,因此它返回一个可能包含任意数量元素的Collection。

如果您将->firstOrFail()附加到第二个查询,则会收到第一个结果,如果找不到结果则会失败。