Laravel / Eloquent-如何在updateExistingPivot()调用中添加附加wherePivot()条件?

时间:2018-07-24 18:52:34

标签: laravel laravel-5 eloquent laravel-5.2

我有一个包含以下各列的参考表:

-user_id (foreign key)
-location_id (foreign key)
-skill_level
-court_id

我可以使用以下命令更新上表中的skill_level枢轴列值:

$user = User::find($user_id)
$user->locations()->updateExistingPivot($location_id, array(
    'skill_level' => $new_value
));

我想在上面添加类似于wherePivot()的内容,以便仅匹配某个court_id(除了user_idlocation_id)的记录才是更新。类似于:

->wherePivot('court_id', '=', $court_id);

如何通过updateExistingPivot()通话来实现?

1 个答案:

答案 0 :(得分:0)

我最终使用了newPivotStatement()-它使您可以从数据透视表中开始一连串的语句。

该呼叫看起来像不是使用updateExistingPivot()

$user->locations()->newPivotStatement()->where('location_id', '=', $location_id)  
     ->where('court_id', '=', $court_id)->update(array(
    'skill_level' => $new_value
));