我有这样的路线
路线:: get('/ {zoneSlug} / {categorySlug} / {sightSlug}',...
示例:
{zoneSlug}
有一个表格,如伦敦或巴黎
{categorySlug}
有许多形式,如:
猫
或: cat / subcat
或: car / subcat / subcat3 /..
和{sightSlug}
有一个表格,如eiffel
所以我喜欢这些地址:
example.com/paris/category/effel
...
example.com/paris/category/subcategory2/.../subcategory5/effel
我尝试在app\Providers\RouteServiceProvider.php
.
Route::bind('zoneSlug' , function ($value) {return Zone::whereSlug($value)->firstOrFail();});
Route::bind('categorySlug', function ($categorySlug, $route) {dd($route);
$zone = $route->parameter('zoneSlug');
return Category::whereSlug($categorySlug)->firstOrFail();
});
Route::bind('sightSlug', function ($sightSlug, $route) {dd($route);
$zone = $route->parameter('zoneSlug');
$category = $route->parameter('categorySlug');
return Sight::whereZones_id($zone->id)->whereCategories_id($category->id)->whereSlug($sightSlug)->firstOrFail();
});
绑定代码适用于:example.com/paris/category/effel
...但不适用于
example.com/paris/category/subcategory2/.../subcategoryn/effel
我该怎么做?
答案 0 :(得分:1)
我建议超越你的URI结构。您的类别更好地位于查询字符串中
example.com/paris/eiffel?categories=category/subcategory,category/subcategor2
或example.com/paris/eiffel?category=category/subcategory&category=category/subcategory2
。