Php Laravel-从空值创建默认对象
我试图获取一个模型并更新其中一个字段,但我一直收到此错误消息Php Laravel-从空值创建默认对象,php,laravel,eloquent,Php,Laravel,Eloquent,我试图获取一个模型并更新其中一个字段,但我一直收到此错误消息 从空值创建默认对象 if(isset($data['code']) && $data['code']){ $invite = \App\Invite::where('code', $data['code'])->first(); $invite->accepted = 1; $invite->save(); }
从空值创建默认对象
if(isset($data['code']) && $data['code']){
$invite = \App\Invite::where('code', $data['code'])->first();
$invite->accepted = 1;
$invite->save();
}
在更新
已接受的
字段时,是否错误地抓取了模型?first()
可以返回null
。因此,您的查询没有返回结果,因此$invite
为null
。如果试图将属性分配给null
,则会出现该错误,因为它会创建一个默认对象并在其上设置该属性。dd($invite)
以查看您是否实际返回了某些内容$invite
为空,因此您将收到此错误。正如拉格博克斯已经说过的那样。我建议您使用firstOrFail()
而不是first()
,然后它将抛出404错误而不是此错误。