Laravel Eloquent получает данные с помощью 'with' и находит на основе значений в этом 'with'

Итак, у меня есть таблица игроков и таблица ссуд.

Players
id | name | age

Loans
id | player_id (foreign key) | status

Я могу получить всех игроков и их ссуды, используя это:

Player::with('loans')->paginate(15);

Теперь я хочу перечислить всех игроков, у которых статус ссуд имеет определенное значение, как мне это сделать?

Что-то вроде:

Player::with('loans')->where('loans.status',$status)->paginate(15);

Например, вы хотите получить всех игроков, а затем получать ссуды только тогда, когда ссуда имеет определенный статус, или вы хотите получить только игроков, которые имеют ссуду (-ы) с определенным статусом?

Rwd 24.07.2018 08:28

Я хочу получить данные об игроках и данные о ссуде для каждого игрока.

Rizki Hadiaturrasyid 24.07.2018 08:40
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
0
2
27
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Вы ищете whereHas для этого:

Player::whereHas('loans', function ($q) use ($status) {
    $q->where('status', $status);
})->paginate(15);

Это запрос, основанный на существовании отношений.

Laravel 5.6 Docs - Красноречивый - Отношения - Запрос существования отношений

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