查询生成器不尊重 $fillable
Query builder not respecting $fillable
当我使用以下代码调用 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());
现在我只能假设这与查询生成器有关。如何让第二位代码符合 $fillable
?
在您的第一个查询中,您使用 findOrFail()
,它总是 returns 一个模型。
在您的第二个查询中,您的 whereRaw()
函数不知道一行或多行是否符合这些条件,因此它 returns 一个可能包含任意数量元素的集合。
如果您将 ->firstOrFail()
附加到您的第二个查询,它将采用第一个结果,或者如果没有找到结果则失败。
当我使用以下代码调用 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());
现在我只能假设这与查询生成器有关。如何让第二位代码符合 $fillable
?
在您的第一个查询中,您使用 findOrFail()
,它总是 returns 一个模型。
在您的第二个查询中,您的 whereRaw()
函数不知道一行或多行是否符合这些条件,因此它 returns 一个可能包含任意数量元素的集合。
如果您将 ->firstOrFail()
附加到您的第二个查询,它将采用第一个结果,或者如果没有找到结果则失败。