میلاد بسحاق
4 سال پیش توسط میلاد بسحاق مطرح شد
2 پاسخ

دسته بندی های فروشگاه لاراول

با سلام
دوستان عزیز، بنده میخوام وقتی مثلا روی یک دسته بندی کلیک شد، آدرس اون به این شکل باشه :

مثلا وقتی روی دسته مادر کلیک کردم :

domin.ir/cats/console

بعد وقتی روی یک زیر شاخه اون کلیک کردم :

domin.ir/cats/console/xbox

و دوباره مثلا ی زیر دسته دیگه :

domin.ir/cats/console/xbox/game

حالا این تعداد ها متغییر هست و حتی بیشتر میشه
من مشکلی با گرفتن زیر شاخه ندارم، منتها مشکل آدرس route هست
چطوری باید تعریفش کنم که بشه تعداد زیادی / رو بعد از route قرار داد

مثلا اگر ما یک روت داریم :

Route::get('cat/{cat_id}', 'PagesController@cat');

دیگه فقط می تونیم ی آدرس به شکل زیر داشته باشیم :

domin.ir/cats/console

ممنون میشم دوستان راهنمایی کنن

@ashkannazari248
@masoudproton
@milad
@ali.bayat
@Alimotreb
@hesammousavi
@endworld
@code2code
@khanzadimahdi
@info.aligraph
@SeyedMH.Mosavi


ثبت پرسش جدید
وحید
تخصص : Fullstack
@forughi.vahid 4 سال پیش آپدیت شد
1

@miladboshagh
هر چند ساخت چنین url ی اصلا اصولی نیست ،‌ ولی اگر بخواید اجراش کنید به این صورت قابل اجراست :
توی Routes/web.php

Route::get('categories/{categories}', 'CategoriesController@view')->where('categories', '[\/\w\.-]*');

حالا توی url هرچیزی بعد از categories بنویسید توی متغیر $categories هست و خودتون میتونید منیجش کنید.
CategoriesController :

public function view($categories)
{
  $categories = explode('/',$categories);
  foreach ($categories as $key => $category) {
    // code...
  }
}

توجه کنید که اگر برای categories روات های دیگه ای هم دارید باید قبل از این روات قرار بگیرن.
نکته دوم اینه که شما تا یه تعداد کاراکتر مشخصی میتونید توی url بنویسید و وقتی به این صورت عمل میکنید تعداد لول هاتون از یه تعدادی بیشتر نمیتونه باشه ، کلا این نوع url ساختن کار اصولی نیست ، درستش اینه که اگر هم قراره نام دسته توی url باشه فقط آخرین دسته رو بزارید .


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 4 سال پیش مطرح شد
1

خیلی راحت میتونید جداشون کنید اما URL nesting معمولا تا ۲ الی ۳ Level پیشنهاد میشه.


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام