我有TransactionOption模型,它们之间存在多对多关系。数据透视表transaction_options包含列transaction_idoption_idprice
我在这样的模型中定义了关系:

交易模型:

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/

10-11 13:27