Сначала кажется, что это те же маршруты. Но на первом маршруте не работает промежуточное ПО, которое я заказал в конструкторе.
Как это исправить?
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');
Других решений пока нет …