Laravel 5 路线不工作

Laravel 5 route not working

这是我的路线:/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 不起作用?

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

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

所以...

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

        Route::get('user', function($version){
            if($version === 'V1'){
               return 123;
            }
            elseif($version === 'V2'){
               return 456;
            }
        });
    }
});

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

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

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

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