سلام من یک فرم دارم که امکان انتخاب دسته بندی و شهر رو داره که از طریق sync اقدام به ثبت اطلاعات میکنم حالا
میخوام اطلاعاتی برگردانم که دسته بندی و شهر انتخاب شده من به ترتیب زیر
http://localhost:8000/city/tehran/category/laravel
روت رو به این ترتیب تعریف کردم
Route::get('/city/{city}/category/{category}' , 'HomeController@index');
حالا توی controller چطور باید عمل کرد که اطلاعاتی رو برگردونه که دسته بندی و شهر مورد نظر انتخاب شده باشه از رابطه belongsToMany استفاده کردم اگر بخوام یک مورد مثلا دسته بندی رو برگردونم مشکلی وجود نداره اما به صورت جفت نمیدونم خیلی ممنون میشم کمک کنید
خب توی کنترلر باید این دو تا رو دریافت کنی و روابط رو بسازی، اینطوری دریافت کنید:
public function index(City $city, Category $category){
}
البته میتونی به صورت پست هم ارسال کنی که دیگه توی url نیاد این اطلاعات
@alirezasafdari
روابط رو ساختم چطور باید این دوتا رو دریافت کنم برای تکی از کد زیر استفاده میکنم
public function index(City $city , Category $category)
{
return $city->books()->latest()->paginate(12);
}
حالا جفت اطلاعات بخوام برگردونم چیکار باید کرد
اینجوری که نمیشه
return $city->$category->books()->latest()->paginate(12);
نمیدونم میخواین چیکار کنید ولی اگه هدفتون اینه کتابهایی رو برگردونید که فلان موضوع و شهر رو دارند بهتره سرچ کنید
روت رو ساده بذارید بدون پارامتر، کنترلر هم ساده اینجوری:
public function index()
{
$books = Book::filter()->paginate(12);
return View('', compact('books'));
}
توی مدل هم فیلتر رو بنویسید مثلا اینجوری:
public function scopeFilter($query)
{
$city = request('city');
$category = request('category');
if (isset($category) && trim($category) != '') {
$query->whereHas('category', function ($query) use ($category) {
$query->whereId($category);
});
}
if (isset($city) && trim($city) != '') {
$query->whereHas('city', function ($query) use ($city) {
$query->whereId($city);
});
}
return $query;
}
من فیلتر نمیخوام کنم منظورم درست متوجه نشدید من یک بار دیگه توضیح بدم من یک سایت دارم که مخاطب میاد کتاب توی اون ارسال میکنه توی فرمی که این عملیات رو انجام میدهد دو select وجود داره یک نام استان دوم دسته بندی که از طریق attach یا sync این اطلاعات رو ذخیره میکند حالا وقتی مخاطب توی یک استان یک دسته بندی رو انتخاب کرد میخوام کتاب هایی نمایش داده بشود که متعلق به اون استان و اون دسته بندی باشه مثال ادرس زیر
http://localhost:8000/city/تهران/category/فلسفه
جناب مهندس یه راهنمایی میکنید من این مشکل رو بر طرف کنم @hesammousavi
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟