Laravel / Eloquent - как добавить дополнительное условие wherePivot () к вызову updateExistingPivot ()?

У меня есть справочная таблица со следующими столбцами:

-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()?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
0
178
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В итоге я использовал newPivotStatement(), который позволяет вам начать цепочку операторов из сводной таблицы.

Вместо использования updateExistingPivot() вызов будет выглядеть так:

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

Другие вопросы по теме