Laravel数据透视表与其他字段

问题描述 投票:0回答:1

嗨,我正在尝试将我的数据透视表与其他一些字段同步。但问题是我不知道如何在我的控制器中包含这些附加字段。直到现在,我从不需要数据透视表中的额外字段。所以我只想使用$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);
}

我想发送相关数据(版本和事件)我该怎么做?

php laravel
1个回答
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);

希望这可以帮助

© www.soinside.com 2019 - 2024. All rights reserved.