路由问题,陷入困境 Laravel
Routing issue, getting slug in Laravel
我的申请中有 2 种类型的 url:
- base_url/category1/
- base_url/category1/categorypage1
- 也许在未来:base_url/category1/subcategory1/ 和
- base_url/category1/subcategory1/subcategorypage1
在 web.php
文件中使用此代码:
Route::any('{slug}', 'PageController@show');
我得到了 base_url/category1/
类型的页面
并使用:
Route::get("{slug}/{slug2}", "PageController@show")->where('path', '.+');
我得到了这种类型的页面:base_url/category1/categorypage1
。
我不能同时使用它们,因为其中一个我得到了 404。我正在寻找一个修复程序以在单个控制器中获取所有 url 类型。我怎样才能做到这一点 ?
[更新]
如果我按此顺序使用,它会起作用:
Route::any('{slug}', 'PageController@show');
Route::any("{slug}/{slug2}", "PageController@show");
但我不太乐意这样使用它。我正在寻找更清洁的解决方案。
首先不要使用 any
,因为您要进行 显示,因此请使用 get
.
您可能正在寻找 ?
(可选参数)。如果您阅读 documentation 而不是在这里询问,您就会知道。
Route::get('{slug?}/{another?}', 'PageController@show');
show($slug = null, $another = null) {}
// or use Request $request
Note: do not mix '
and "
it looks ridiculous
提问前搜索
我的申请中有 2 种类型的 url:
- base_url/category1/
- base_url/category1/categorypage1
- 也许在未来:base_url/category1/subcategory1/ 和
- base_url/category1/subcategory1/subcategorypage1
在 web.php
文件中使用此代码:
Route::any('{slug}', 'PageController@show');
我得到了 base_url/category1/
类型的页面
并使用:
Route::get("{slug}/{slug2}", "PageController@show")->where('path', '.+');
我得到了这种类型的页面:base_url/category1/categorypage1
。
我不能同时使用它们,因为其中一个我得到了 404。我正在寻找一个修复程序以在单个控制器中获取所有 url 类型。我怎样才能做到这一点 ?
[更新]
如果我按此顺序使用,它会起作用:
Route::any('{slug}', 'PageController@show');
Route::any("{slug}/{slug2}", "PageController@show");
但我不太乐意这样使用它。我正在寻找更清洁的解决方案。
首先不要使用 any
,因为您要进行 显示,因此请使用 get
.
您可能正在寻找 ?
(可选参数)。如果您阅读 documentation 而不是在这里询问,您就会知道。
Route::get('{slug?}/{another?}', 'PageController@show');
show($slug = null, $another = null) {}
// or use Request $request
Note: do not mix
'
and"
it looks ridiculous