#php #arrays #laravel #model-view-controller #eloquent
#php #массивы #laravel #модель-представление-контроллер #красноречивый
Вопрос:
теперь этот код принимает все совпадения. Мне нужно брать только там, где home_team_score и away_team_score не равны нулю:
$matches = Match::with('score', 'homeTeam', 'awayTeam')->
where('league_id', '=', $league->id)->get();
foreach ($matches as $match) {
$homeTeamScore = $match->score->home_team_score;
$awayTeamScore = $match->score->away_team_score;
Помогите здесь с условием where.
Комментарии:
1. рассматривали ли вы возможность использования
whereHas
для запроса наличия условия отношения? laravel.com/docs/8.x /…
Ответ №1:
Необходимо whereHas
ограничить запрос, чтобы включать только совпадения, в которых home_team_score и away_team_score не равны нулю.
$matches = Match::with('score', 'homeTeam', 'awayTeam')
->whereHas('score', function($query){
$query->whereNotNull('home_team_score')
->whereNotNull('away_team_score');
})
->where('league_id', '=', $league->id)
->get();