Pregunta ¿Cómo puedo establecer el valor para el campo adicional en la tabla dinámica de Eloquent


$ recourse-> pivot-> field = 'value';

da error: modificación indirecta de propiedad sobrecargada


5
2018-06-26 08:29


origen


Respuestas:


pivot Está disponible solo en el contexto de una relación:

// won't work
$model = Model::first();
$model->pivot; // null

// will work
$anotherModel = AnotherModel::first();
$relatedModel = $anotherModel->relation()->first();
$relatedModel->pivot; // Pivot object

Pero para lo que está tratando de hacer simplemente use param adicional en el save método:

$product = Product::find($item->id);
$order->product()->save($product, ['price' => 12.34]);

Para relación existente:

$product = $order->product()->find($productId);
$product->pivot->price = 12.34;
$product->pivot->save();

// or
$order->product()->updateExistingPivot($productId, ['price'=>12.34]);

Y te sugiero que uses products para ese tipo de relación para que sea más fácil de leer.


13
2018-06-26 08:52



Debes guardar () el propio pivote.

$order->pivot->price = '1.234';
$order->pivot->save();

0
2018-06-26 08:53