路由问题,在Laravel中遇到slu ..

时间:2017-06-10 13:00:41

标签: php laravel slug

我的应用程序中有两种类型的URL:

  1. BASE_URL /类别1 /
  2. BASE_URL /类别1 / categorypage1
  3. 可能在将来:base_url / category1 / subcategory1 /和
  4. BASE_URL /类别1 /子类别1 / subcategorypage1
  5. 在使用此代码的web.php文件中:

    Route::any('{slug}', 'PageController@show');我获得了base_url/category1/类型的网页

    并使用: Route::get("{slug}/{slug2}", "PageController@show")->where('path', '.+');我有这种类型的网页:base_url/category1/categorypage1

    我不能同时使用它们,因为其中一个我得到404.我正在寻找修复以在单个控制器中获取所有url类型。我怎样才能做到这一点 ?

    [UPDATE]

    如果按此顺序使用,则可以:

    Route::any('{slug}', 'PageController@show');
    Route::any("{slug}/{slug2}", "PageController@show");
    

    但是我不是很高兴这样使用它。我正在寻找一个更清洁的解决方案。

1 个答案:

答案 0 :(得分:1)

首先请不要使用any,因为您要显示,因此请使用get

您可能正在寻找?(可选参数)。如果您阅读documentation而不是在这里询问,您就会知道。

Route::get('{slug?}/{another?}', 'PageController@show');

show($slug = null, $another = null) {}
// or use Request $request
  

注意:不要混用'"看起来很荒谬

在询问之前搜索