【问题标题】:Laravel 5 route not workingLaravel 5路线不起作用
【发布时间】:2015-04-20 09:07:05
【问题描述】:

这是我的路线:/api/v1/user

Route::group(['prefix' => 'api/{version}'], function($version){

    if ($version == 'v1') {
        Route::get('user', function(){
            return 123 ;
        });

    } else if ($version == 'v2') {

        Route::get('user', function(){
            return 456 ;
        });

    }
});

这是我得到的错误:

NotFoundHttpException in RouteCollection.php line 145

为什么 $version 不起作用?

【问题讨论】:

  • 我只是移动了root/public/.htaccess to root/.htaccess,它可以工作

标签: php laravel routes


【解决方案1】:

我认为您必须为此使用另一种结构。

Route::group(['prefix' => 'api/{version}'], function($version) {
    Route::get('user', function($version){
        return $version;
    });
});

当您尝试对路由进行分组时,您应该在内部路由中使用该变量。在这里您可以过滤一个版本。

http://laravel.com/docs/master/routing#route-groups

【讨论】:

    【解决方案2】:

    据我了解,组路由变量必须传递给 Route::get 函数,因此您正在调用前缀中带有变量的分组,该组中的每个路由都可以访问此变量他们功能的一个参数..

    (当您考虑分组的想法时,这是有道理的)

    所以...

    Route::group(['prefix' => 'api/{version}'], function(){
    
            Route::get('user', function($version){
                if($version === 'V1'){
                   return 123;
                }
                elseif($version === 'V2'){
                   return 456;
                }
            });
        }
    });
    

    【讨论】:

      猜你喜欢
      • 2016-07-03
      • 1970-01-01
      • 2016-10-14
      • 2017-10-02
      • 2013-05-03
      • 2014-09-08
      • 2015-03-18
      相关资源
      最近更新 更多