laravel4更新透视表中的其他列

laravel4更新透视表中的其他列,laravel,laravel-4,eloquent,Laravel,Laravel 4,Eloquent,我正在尝试更新多对多关系中透视表中的其他列数据 我有两个表-预订和资源与透视表链接。我可以附加并正在使用该模型。但是,我正在努力更新透视表中的一个附加列 我有一个对象:“$reservation”,我从该对象创建了另一个对象$resources,使用: $resources = $reservation->resource()->get(); 然后,我使用foreach循环遍历$resources,如下所示 foreach($resources as $resource ) {..

我正在尝试更新多对多关系中透视表中的其他列数据

我有两个表-预订和资源与透视表链接。我可以附加并正在使用该模型。但是,我正在努力更新透视表中的一个附加列

我有一个对象:“$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')
如果我有资源对象,如何正确更新数据透视表中的列并保存到数据库


谢谢

之后,在轴上设置属性:

$resource->pivot->gcal_id = "TEST";
$resource->save();
您似乎保存了资源,而不是轴心:

$resource->pivot->gcal_id = "TEST";
$resource->save();
如果希望保存透视,则仅保存资源是不够的。改为在pivot上调用save:


替代
save
方法的另一种方法是
illumb\Database\Eloquent\Relations\belongstomy\updateExistingPivot()


这是我在Laravel 4.2中的工作,谢谢。我脑子里还没有完全弄清楚这些关系。我很难找到正确的方法。你的解决办法奏效了——一定要记住我在操纵什么样的模型。
$reservation->resource()->updateExistingPivot([1, 4, 5, 6], ['gcal_id' => 'TEST']);