سلام دوستان ، وقت همگی بخیر .
من یه مدل برای کشورها ، استانها دارم به اسم :
Tourlocation
یه مدل هم دارم برای معرفی تورها ( Tour ) اون کشورها و استانها که به رابطشون به این شکله :
رابطه کشور و استانها : یک به چند
رابطه استان به کشور : یک به یک
رابطه کشور به تور : چند به چند
رابطه استان به تور : چند به چند
هر تور میتونه به تنهایی برای یک کشور باشه و همچنین میتونه شامل استانهای زیادی هم بشه ( مثلا تور های ترکیبی که میتونه شامل چندین استان و کشور بشه )
حالا مسئله اینجاست :
وقتی میخوام تورهای یک کشور رو با تورهای استانهای اون کشور بگیرم ، مشکل دارم و در دو مرحله باید انجام بشه :
اینطوری تورهای اون کشور رو میگیرم :
اینطوری هم تورهای استانهای اون کشور رو ببینم :
تو این حالت اگر یک تور درون یک کشور و یکی از استانهای اون کشور ثبت شده باشه ، یکبار درون تورهای اون کشور و یکبار درون تورهای استانهای اون کشور نمایش داده میشه
با groupBy هم نتونستم خروجی رو یونیک کنم
کدی که نوشتم :
من یه مدل برای کشورها ، استانها دارم به اسم :
Tourlocation
یه مدل هم دارم برای معرفی تورها ( Tour ) اون کشورها و استانها که به رابطشون به این شکله :
رابطه کشور و استانها : یک به چند
رابطه استان به کشور : یک به یک
رابطه کشور به تور : چند به چند
رابطه استان به تور : چند به چند
هر تور میتونه به تنهایی برای یک کشور باشه و همچنین میتونه شامل استانهای زیادی هم بشه ( مثلا تور های ترکیبی که میتونه شامل چندین استان و کشور بشه )
حالا مسئله اینجاست :
وقتی میخوام تورهای یک کشور رو با تورهای استانهای اون کشور بگیرم ، مشکل دارم و در دو مرحله باید انجام بشه :
اینطوری تورهای اون کشور رو میگیرم :
$country->tours
اینطوری هم تورهای استانهای اون کشور رو ببینم :
$country->province->tours
تو این حالت اگر یک تور درون یک کشور و یکی از استانهای اون کشور ثبت شده باشه ، یکبار درون تورهای اون کشور و یکبار درون تورهای استانهای اون کشور نمایش داده میشه
با groupBy هم نتونستم خروجی رو یونیک کنم
کدی که نوشتم :
$country = AppTourlocation::where('slug' , '=' , $slug)->where('type', '=', 1)->with(['tours', 'province.tours' => function($query) { $query->orderBy('tours.id' , 'DESC')->groupBy('id'); }])->first();