您好,我正在尝试将我的数据透视表与其他一些字段同步。
但问题是我不知道如何在控制器中包含这些附加字段。直到现在,我从不需要数据透视表中的额外字段。所以我只是选择$model->relation->sync(array_of_ids, false)
,但无法弄清楚如何使用相关模型的ID发送其他字段。这是我目前的代码
型号:
public function speakers(){
return $this->BelongsToMany('App\Models\Speaker', "speaker_session_items",
"session_item_id", "speaker_id")->withPivot('event_id', 'edition_id')
->withTimestamps();
}
控制器:
public function store_speakers(Request $request){
$speakers = $request->input('speaker_id');
$session_item = SessionItem::findOrFail($request->input("session_item_id"));
$related = ['event_id' => $request->input('evnet_id'),
'edition_id' => $request->input('edition_id')];
$status = $session_item->speakers()->sync($speakers, $false);
print_r($status);
}
我想发送相关数据(版本和事件)我该怎么做?
答案 0 :(得分:1)
您可以使用save
$status = $session_item->speakers()->save($speakers, ['your-additional-attribute' => 'value']);
使用sync
$user->roles()->speakers( [
1 => [ 'attribute' => value ],
2 => [ 'attribute' => value ],
]);
为了节省许多费用,您可以使用saveMany()
$status = $session_item->speakers()->saveMany($YourData);
希望这有帮助