которые с помощью 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 в доках видел?
Обсуждают сегодня