【问题标题】:Laravel regex routeLaravel 正则表达式路由
【发布时间】:2016-04-07 08:20:10
【问题描述】:

我想从控制器调用一个函数到所有以 my_website/doc/ 开头的路由。

但我在 laravel 5 中找不到可以做到这一点的东西。

类似:Route::get('my_website/doc/*', 'WelcomeController@doc');

例如:

my_website/doc/test --> WelcomeController@doc

my_website/doc/test/1 --> WelcomeController@doc

my_website/doc/test/1/etc --> WelcomeController@doc

【问题讨论】:

标签: php regex laravel-5


【解决方案1】:

你可以这样使用

Route::get('my_website/docs/{page?}', 'WelcomeController@doc');

{page?} 将是

  • test 代表 my_website/doc/test
  • test/1 代表 my_website/doc/test/1
  • test/1/etc my_website/doc/test/1/etc

doc 方法

public function doc($page = null)
{
    dd($page);
}

【讨论】:

  • 不。一旦它到达/,它就会抛出一个404。你需要将->where()附加到你的路由定义中。
【解决方案2】:

这是解决问题的另一种方法:

Route::get('{slug}', function($slug){
    dd($slug);
    //
})->where('slug', 'my_website/docs.*');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-13
    • 2016-10-10
    • 1970-01-01
    • 2015-09-13
    • 2018-08-06
    • 2018-06-06
    • 2020-10-10
    • 2019-01-01
    相关资源
    最近更新 更多