【问题标题】:Laravel return the page on any address except from routesLaravel 返回除路由之外的任何地址的页面
【发布时间】:2016-09-01 15:07:04
【问题描述】:

我有一个 Laravel 应用程序的路由列表。现在,我想为未列出的所有路线返回与 / 返回的相同页面。即

/hello/world <-> binded to "Hello world" page
/blah/blah <-> binded to "Blah Blah" p

现在,无论用户请求什么(GET)以及请求中有多少个斜杠(/asdfda/sadfasdf/asdfasdfeafsadfsdaasdfadsfasd/adsfsdaf),我都想返回相同的页面。不过我不希望它是 404,因为我想保持这条合法路线。


我试过了

Route::get('{all?}', [
    'as' => 'spa.index',
    'uses' => 'SPAController@index',
]);

但这只有在没有斜线时才有效。


有人知道怎么做吗?

【问题讨论】:

    标签: php laravel laravel-5 laravel-routing


    【解决方案1】:

    好的,我自己找到了解决方案。我会把这个问题留给后代。无论用户请求什么路由,这都会返回相同的页面

    Route::get('{all?}', [
        'as' => 'spa.index',
        'uses' => 'SPAController@index',
    ])->where('all', '([A-z\d-\/_.]+)?');
    

    【讨论】:

      【解决方案2】:
      Route::get('/{foo}/{bar}', [
         'as' => 'spa.index',
         'uses' => 'SPAController@index',
      ]);
      

      并在 SPAController 和 action index 中添加:

      public function index($foo,$bar){
           return view($foo.' '.$bar);
      }
      

      【讨论】:

        猜你喜欢
        • 2014-07-31
        • 1970-01-01
        • 2018-08-20
        • 1970-01-01
        • 2016-02-27
        • 1970-01-01
        • 1970-01-01
        • 2022-07-18
        • 2021-01-25
        相关资源
        最近更新 更多