Php Laravel 5雄辩的模型赢得';不要让我更新

Php Laravel 5雄辩的模型赢得';不要让我更新,php,laravel,Php,Laravel,我确实在数据库中设置了邀请表。我将其用于其他目的,例如添加更多 我的目标:使用新值将第一条记录更新到字段: 我试过: $invitation = new MemberInvitation(); $invitation1 = $invitation->find(1); $invitation1->status = 'clicked'; $invitation1->save(); 而且: $invitation1 = \App\Model\MemberInvitation::fi

我确实在数据库中设置了邀请表。我将其用于其他目的,例如添加更多

我的目标:使用新值将第一条记录更新到字段:

我试过:

$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));
我错过了什么?

试试这个

$invitation = MemberInvitation::findOrFail(1);
$invitation->status = 'clicked';
$invitation->save();
如果这不起作用,请显示您的模型

查找(1)
不是指“给我第一条记录”,而是指“给我id=1的第一条记录”。如果没有id为1的记录,
find(1)
将返回
null
。当您尝试在
null
上设置属性时,会收到一条PHP警告消息“从空值创建默认对象”

如果您真的只想获取第一条记录,可以使用
first()
方法:

$invitation = \App\Model\MemberInvitation::first();
如果需要获取具有特定id的记录,可以使用
find()
方法。例如,要将正在工作的DB代码转换为雄辩的代码,它将如下所示:

$invitation = \App\Model\MemberInvitation::find($member_invitation->id);
$invitation->status = 'clicked';
$invitation->member_id = $member->id;
$invitation->save();

根据你5月15日的答复,答案是显而易见的


模型中的“可填充”属性为空。确保在该数组中输入“status”。不在此数组中的属性不能向上修改。

是否确实有第一条记录?通常情况下,如果
find(1)
没有返回记录,您会得到这个结果。尝试
findOrFail
而不是
find
并查看它是否引发异常。这起作用:\DB::table('member\u investments')->where('id','=',$member\u investment->id)->update(数组('status'=>'clicked','member\u id'=>$member->id));因此,我猜数据库是在战术记录软删除(即,
deleted\u在
non-NULL)?我得到“ModelNotFoundException in Builder.php第125行:没有模型[App\model\MemberInvitation]的查询结果。”--如果\DB::table方法有效,这怎么可能呢?模型类很简单,而且非常空:类MemberInvitation扩展了模型{protected$filleble=[];/***模型使用的数据库表。**@var string*/protected$table='member_invitations';}我怀疑您的行是软删除的,因为在列的
deleted\u中有一个非空值。