我的产品目录有这个层次结构:
产品 - >类别 - >线 - >产品
此层次结构的路线:
Route::get('/products', ['as' => 'site.products.index', 'uses' => 'Site\ProductsController@index']);
Route::get('/products/{categorySlug}', ['as' => 'site.products.category', 'uses' => 'Site\ProductsController@category']);
Route::get('/products/{categorySlug}/{lineSlug}', ['as' => 'site.products.line', 'uses' => 'Site\ProductsController@line']);
Route::get('/products/{categorySlug}/{lineSlug}/{productSlug}', ['as' => 'site.products.product', 'uses' => 'Site\ProductsController@product']);
之后,有一些过滤器,如椅子,书桌,桌子等。 当用户点击一个过滤器时,我将带来具有此过滤器的产品。
我想的是:
Route::get('/products/{categorySlug}/filter/{filterSlug}', ['as' => 'site.products.filter', 'uses' => 'Site\ProductsController@filter']);
但它会与其他路线发生冲突。
答案 0 :(得分:1)
你应该把
Route::get('/products/{categorySlug}/filter/{filterSlug}', ['as' => 'site.products.filter', 'uses' => 'Site\ProductsController@filter']);
之前的
Route::get('/products/{categorySlug}/{lineSlug}/{productSlug}', ['as' => 'site.products.product', 'uses' => 'Site\ProductsController@product']);
这意味着laravel将尝试在另一个之前匹配filter
。