14

多対多の関係で、ピボット テーブルの追加の列データを更新しようとしています。

ピボット テーブルにリンクされた予約とリソースの 2 つのテーブルがあります。私は取り付けることができ、モデルで作業しています。ただし、ピボット テーブルの追加の列の 1 つを更新するのに苦労しています。

オブジェクトがあります: '$reservation' そのオブジェクトから、次を使用して別のオブジェクト $resources を作成しました:

$resources = $reservation->resource()->get();

次に、次のようにループを$resources使用して繰り返しますforeach

foreach($resources as $resource ) {...}

次に、gcal_id という列を更新し、次のものを使用しています。

$resource->pivot->gcal_id = "TEST";
$resource->save();

モデルをvar_dumpすると、プロパティが正しい値に存在することがわかりますが、データベース自体ではエントリが更新されていないため、保存が機能していません

これとの関係の両側に列がリストされています。

->withPivot('start', 'end', 'quantity', 'product_id','gcal_id')

リソース オブジェクトがある場合、ピボット テーブルの列を正しく更新してデータベースに保存するにはどうすればよいですか?

ありがとう

4

2 に答える 2

25

その後、ピボットに属性を設定します。

$resource->pivot->gcal_id = "TEST";

ピボットではなくリソースを保存しているようです:

$resource->save();

ピボットを保存したい場合、リソースを保存するだけでは不十分です。代わりに、ピボットでsave を呼び出します。

$resource->pivot->gcal_id = "TEST";
$resource->pivot->save();
于 2013-09-29T22:38:19.273 に答える