我正在尝试以多对多关系更新数据透视表中的其他列数据 .
我有两个表 - 保留和资源与数据透视表链接 . 我可以附上并正在使用该模型 . 但是,我正在努力更新数据透视表中的一个附加列 .
我有一个对象:'$ reservation'从该对象我创建了另一个对象$ resources使用:
$resources = $reservation->resource()->get();
然后我使用 foreach
循环迭代 $resources
,如下所示
foreach($resources as $resource ) {...}
然后我想更新一个名为gcal_id的列,并使用以下内容:
$resource->pivot->gcal_id = "TEST";
$resource->save();
如果我var_dump模型,我可以看到属性存在正确的值,但在数据库本身,条目没有更新 - 所以保存不起作用
我在这两个关系中列出了列:
->withPivot('start', 'end', 'quantity', 'product_id','gcal_id')
鉴于我有资源对象,如何在数据透视表中正确更新列并保存到数据库?
谢谢
2 回答
之后,您在枢轴上设置属性:
您似乎保存资源而不是枢轴:
如果要保存透视,则保存资源是不够的 . 改为在枢轴上调用保存:
替代
save
方法的替代方法是方法Illuminate\Database\Eloquent\Relations\BelongsToMany\updateExistingPivot()
要么
这项工作对我来说是
Laravel 4.2