У меня есть справочная таблица со следующими столбцами:
-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_id и location_id). Что-то похожее:
->wherePivot('court_id', '=', $court_id);
Как мне сделать это с вызовом updateExistingPivot()?






В итоге я использовал newPivotStatement(), который позволяет вам начать цепочку операторов из сводной таблицы.
Вместо использования updateExistingPivot() вызов будет выглядеть так:
$user->locations()->newPivotStatement()->where('location_id', '=', $location_id)
->where('court_id', '=', $court_id)->update(array(
'skill_level' => $new_value
));