路由问题,陷入困境 Laravel

Routing issue, getting slug in Laravel

我的申请中有 2 种类型的 url:

  1. base_url/category1/
  2. base_url/category1/categorypage1
  3. 也许在未来:base_url/category1/subcategory1/ 和
  4. 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


提问前搜索