Laravel。路线不匹配

时间:2015-02-28 14:20:47

标签: php laravel laravel-routing laravel-5 web-frameworks

起初似乎是相同的路线。但是在第一个路由中没有我在构造函数中订购的中间件。

如何解决这个问题?

Route::get('/cars.get', function() {

return App::make('App\Http\Controllers\CarsController')->{'get'}();

});

Route::get('/cars.get', 'CarsController@get');

抱歉我的英语=)

1 个答案:

答案 0 :(得分:1)

修改

我错了callAction()除了调用方法之外别无其他。 不幸的是,似乎没有一个简单的API可以手动调用中间件。解决这个问题的方法就是在路由上定义中间件:

Route::get('/cars.get', ['middleware' => 'auth', function() {
    return App::make('App\Http\Controllers\CarsController')->{'get'}();
}]);

原始答案:

通过直接调用get()方法,您可以跳过控制器中定义的中间件。您应该使用callAction()代替:

return App::make('App\Http\Controllers\CarsController')->callAction('get');

另请注意,您可以使用app()作为App::make()的快捷方式:

return app('App\Http\Controllers\CarsController')->callAction('get');