我有 Games 表,它具有以下架构
编号 | 状态 | 姓名
状态列有 2 个值(活动、待定)
以及具有以下架构的 GamePlayer 表
编号 | 游戏ID | player_id | 请求状态
request_status 列有 3 个值(Pending、Confirm、Rejected)
现在我必须选择玩家参与的所有游戏,但有以下限制:
如果游戏处于 Pending 状态,那么它将显示给所有 game_player 如果游戏处于 Active 状态,那么它将只显示给 request_status 为 Confirm 的 game_player。游戏(模型)
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);
请帮助我如何根据条件(父表和子表)从另一个表中填充数据。