我有Transaction
和Option
模型,它们之间存在多对多关系。数据透视表transaction_options
包含列transaction_id
,option_id
和price
。
我在这样的模型中定义了关系:
交易模型:
public function options()
{
return $this->belongsToMany('App\Option', 'transaction_options')->withPivot('price');
}
选项模型:
public function transactions()
{
return $this->belongsToMany('App\Transaction', 'transaction_options')->withPivot('price');
}
我想知道如何将某些内容保存在数据透视表中,我已经尝试过类似的操作,但是它不起作用:
foreach($data->options as $option) {
$transaction->options()->create([
'transaction_id' => $transaction->id,
'extras_id' => $option->extraId,
'option_id' => $option->id,
'price' => $option->price
]);
}
我怎样才能做到这一点?
最佳答案
将多余的字段作为值传递给附加函数
$transaction->options()->attach([$request['id'] => ['price' => $request['price']]]);
关于php - Laravel-保存到带有额外列的多对多关系数据透视表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48323971/