Laravel。路线不匹配
Laravel. Routes do not match
乍一看好像是一样的路线。但是在第一条路线中,我在构造函数中订购的中间件不起作用。
如何解决?
Route::get('/cars.get', function() {
return App::make('App\Http\Controllers\CarsController')->{'get'}();
});
Route::get('/cars.get', 'CarsController@get');
对不起我的英语=)
编辑
我错了 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');
乍一看好像是一样的路线。但是在第一条路线中,我在构造函数中订购的中间件不起作用。
如何解决?
Route::get('/cars.get', function() {
return App::make('App\Http\Controllers\CarsController')->{'get'}();
});
Route::get('/cars.get', 'CarsController@get');
对不起我的英语=)
编辑
我错了 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');