$recourse->pivot->field = 'value';
gives error: Indirect modification of overloaded property
There are many ways to update the pivot table in Laravel. We can use attach(), detach(), sync(), and pivot attribute to update the intermediate table in Laravel.
pivot
is available only in the context of a relation:
// won't work
$model = Model::first();
$model->pivot; // null
// will work
$anotherModel = AnotherModel::first();
$relatedModel = $anotherModel->relation()->first();
$relatedModel->pivot; // Pivot object
But for what you are trying to do simply use additional param in the save
method:
$product = Product::find($item->id);
$order->product()->save($product, ['price' => 12.34]);
For existing relation:
$product = $order->product()->find($productId);
$product->pivot->price = 12.34;
$product->pivot->save();
// or
$order->product()->updateExistingPivot($productId, ['price'=>12.34]);
And I suggest you use products
for that kind of relation in order to make it easier to read.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With