我确实在数据库中设置了邀请表.我将它用于其他目的,例如添加更多……
我的目标:用字段的新值更新第一条记录:
我试过了:
$invitation = new MemberInvitation(); $invitation1 = $invitation->find(1); $invitation1->status = 'clicked'; $invitation1->save();
并且:
$invitation1 = \App\Model\MemberInvitation::find(1); $invitation1->status = 'clicked'; $invitation1->save();
两者都以:
Creating default object from empty value
编辑:
这段代码正确地工作和更新了我的记录 – 我不能通过Eloquent的模型来做到这一点:
\DB::table('member_invitations')->where('id','=',$member_invitation->id) ->update(array('status' => 'clicked','member_id' => $member->id));
我错过了什么?
解决方法
find(1)并不意味着“给我第一条记录”,它意味着“给我第一条记录,其中id = 1”.如果您没有id为1的记录,则find(1)将返回null.当您尝试在null上设置属性时,您会收到一条PHP警告消息“从空值创建默认对象”.
如果你真的只想获得第一条记录,你可以使用first()方法:
$invitation = \App\Model\MemberInvitation::first();
如果需要获取具有特定ID的记录,可以使用find()方法.例如,要将您的工作数据库代码转换为Eloquent,它看起来像:
$invitation = \App\Model\MemberInvitation::find($member_invitation->id); $invitation->status = 'clicked'; $invitation->member_id = $member->id; $invitation->save();