У меня есть таблица Игр, которая имеет следующую схему
id | статус | имя
столбец состояния имеет 2 значения (Active, Pending)
и таблицу GamePlayer, которая имеет следующую схему
id | game_id | player_id | request_status
столбец request_status имеет 3 значения (Pending, Confirm, Rejected)
Теперь мне нужно выбрать все игры, в которых участвует игрок, но со следующими ограничениями:
Если игра находится в состоянии ожидания, она будет показана всем game_players. Если игра находится в активном состоянии, она будет показана только game_player, для которого request_status установлено значение Confirm. Игра (модель)
public function GamePlayer()
{
return $this->hasMany('App\Models\GamePlayer', 'game_id', 'id');
}
public function getGames($playerId)
{
$gameList = Game::with(['GamePlayer','Category:id,name'])
->whereHas('GamePlayer', function ($q) use ($playerId) {
$q->where('player_id', $playerId);
})->get();
return $gameList;
}
Контроллер
$this->gameObj = new Game();
$gameList = $this->gameObj->getGames($player_id);
Пожалуйста, помогите мне, как я могу заполнить данные из другой таблицы на основе условия (родительская таблица, а также ребенок).