【发布时间】:2021-09-01 21:13:04
【问题描述】:
当我使用 update() 和 find() 和无效的 id 时
User::find(100)
->update(['is_valid' => true])
我收到错误:
错误:在 null 上调用成员函数 update()
但是当我使用update() 和where 和无效的id 时
User::where('id', 100)
->update(['is_valid' => true])
它按预期返回false。那么当我使用find() 时有什么问题?如何解决?
【问题讨论】:
-
id 100 是否存在于 users 表中。如果不是第二个查询将返回 false
-
请注意:
find()将返回一个 single 模型实例,其中返回 multiple 集合,因此您不能将update()方法与find()。update()是mass assignment的方法 -
我的问题是为什么不能在
update()中使用find()?它适用于有效的id,但不适用于无效的id -
查询如何对无效 ID 执行更新
-
@Senthur 在这种情况下您需要使用
findOrFail(),因为如果find()不存在,find()将返回 null,因此您将在下一次查询时出错
标签: laravel eloquent laravel-8