которые с помощью belongsToMany связаны с категориями и странами.
Допустим я хочу фильтрануть туры одновременно и по категории, и по странам.
Сейчас я это делаю так. Это нифига не эффективно, судя по тестам.
$category = Category::query()
->where('taxonomy_id', $categoryNodeId)
->firstOrFail();
$country = Country::query()
->where('taxonomy_id', $countryNodeId)
->firstOrFail();
$toursCategory = $category->tour()
->where('is_active', 1)
->with('country')
->get();
$toursCountry = $country->tour()
->where('is_active', 1)
->with('country')
->get();
dump($toursCategory->intersect($toursCountry)->slice(1,count($toursCountry)));
Остаётся только другой вариант с join-ами?
whereHas в доках видел?
Обсуждают сегодня