تالار گفتمان nCIS.ir

نسخه‌ی کامل: استفاده از groupBy در رابطه ها جداول (حل شد)
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
با سلام و احترام خدمت همه دوستان و اساتید محترم .


بنده سه مدل برای : کشورها ، استانها و تورها دارم که رابطه هاشون به این شکل هستش :

کشور با استانها > یک به چند
استان با تور > چند به چند

تورهایی که ثبت میکنم میتونه چندتا استان داشته باشه که تو این حالت ، اگر من یک کشور رو انتخاب کنم و بخوام از طریق استانهاش به تورها برسم ، توری که دوتا استان داره رو دوبار نمایش میشه.
حالا نمیدونم تو این نوع رابطه ها چطور از groupBy استفاده کنم !

کدم به این شکل هستش :

$country = AppCountry::where('slug' , '=' , $slug)->where('type', '=', 1)

       ->with(['province.tours.tourlocation', 'province.country'])->first();


به این شکل هم نوشتم ولی باز جوابی نگرفتم :


$country = AppCountry::where('slug' , '=' , $slug)->where('type', '=', 1)

       ->with(['province.tours' => function($query){
           $query->groupBy('tours.id');
       }, 'province.tours.tourlocation', 'province.country'])->first();




ممنون میشم راهنماییم کنید که چطور این مشکل رو رفع کنم .
درست شد :|
برای دوستانی که چنین مشکلی دارن میگم :

وقتی با چنین مشکلی مواجه شدید و نمیتونید از groupBy درون رابطه ها استفاده کنید ، کافیه تو تنظیمات فایل کانفیگ database.php مقدار فیلد 'strict' رو برابر با false قرار بدید تا کوئری زیر عمل کنه :

$country = AppCountry::where('slug' , '=' , $slug)->where('type', '=', 1)
            ->with(['province.tours' => function($query){
                $query->groupBy('id');
            },  'province.country'])->first();