laravel4更新数据透视表中的其他列

Ray*_*Ray 13 laravel eloquent laravel-4

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

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

我有一个对象:'$ reservation'从该对象我创建了另一个对象$ resources使用:

$resources = $reservation->resource()->get();
Run Code Online (Sandbox Code Playgroud)

然后我按如下方式迭代$resources使用foreach循环

foreach($resources as $resource ) {...}
Run Code Online (Sandbox Code Playgroud)

然后我想更新一个名为gcal_id的列,并使用以下内容:

$resource->pivot->gcal_id = "TEST";
$resource->save();
Run Code Online (Sandbox Code Playgroud)

如果我var_dump模型,我可以看到属性存在正确的值,但在数据库本身,条目没有更新 - 所以保存不起作用

我在这两个关系中列出了列:

->withPivot('start', 'end', 'quantity', 'product_id','gcal_id')
Run Code Online (Sandbox Code Playgroud)

鉴于我有资源对象,如何在数据透视表中正确更新列并保存到数据库?

谢谢

Mat*_*röm 24

之后,您在枢轴上设置属性:

$resource->pivot->gcal_id = "TEST";
Run Code Online (Sandbox Code Playgroud)

您似乎保存资源而不是枢轴:

$resource->save();
Run Code Online (Sandbox Code Playgroud)

如果要保存透视,则保存资源是不够的.改为在枢轴上调用保存:

$resource->pivot->gcal_id = "TEST";
$resource->pivot->save();
Run Code Online (Sandbox Code Playgroud)