我遇到了在Laravel中获取模型的情况。像这样:
$user = User::with('subscription')->where('id', '=', 123)->first();
如果我以后再尝试执行以下操作:
$user->firstname = 'John';
$user->save();
我收到一条SQL错误,因为它说没有名为“ subscription”的DB字段。保存时,该关系似乎被视为DB字段。那正确吗?我是说
unset($user->subscription)
保存之前?
如果存在关系,是否无法更新模型?保存之前是否必须将其删除?
答案 0 :(得分:0)
尝试
创建新的用户对象
$user = new User;
$user->firstname = 'John';
$user->save();
答案 1 :(得分:0)
相同的代码对我有用。您正在使用哪个laravel版本?
$psc = Subject::with('group')->where('group_id', 1)->first();
$psc->group->name = 'PSC';
$psc->group->save();
dd($psc->group);
$psc->name = 'Science';
$psc->save();
dd($psc->name);
答案 2 :(得分:0)
我发现了造成这种情况的原因。在我代码的先前位置,我试图更新这种关系。偶然我将订阅作为属性分配给我的用户对象。这不是Laravel问题。