$recourse->pivot->field = '值';
给出错误:间接修改重载属性
最佳答案
pivot
仅在关系上下文中可用:
// won't work
$model = Model::first();
$model->pivot; // null
// will work
$anotherModel = AnotherModel::first();
$relatedModel = $anotherModel->relation()->first();
$relatedModel->pivot; // Pivot object
但是对于您想要做的事情,只需在 save
方法中使用附加参数即可:
$product = Product::find($item->id);
$order->product()->save($product, ['price' => 12.34]);
对于现有关系:
$product = $order->product()->find($productId);
$product->pivot->price = 12.34;
$product->pivot->save();
// or
$order->product()->updateExistingPivot($productId, ['price'=>12.34]);
我建议您使用products
来表示这种关系,以便于阅读。
关于laravel - 如何在 Eloquent 数据透视表上设置额外字段的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24425819/