[英]Laravel pivot table with additional fields
嗨,我正尝试将我的数据透视表与其他一些字段同步。 但是问题是我不知道如何在控制器中包括这些附加字段。 直到现在,我再也不需要数据透视表中的额外字段。 因此,我只想使用$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);
}
我想发送相关数据(包括版本和事件),该怎么办?
您可以使用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);
希望这可以帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.