繁体   English   中英

带有其他字段的Laravel数据透视表

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM