Как вызвать ApiResource с промежуточным ПО в моих маршрутах? - PullRequest
2 голосов
/ 23 апреля 2020

Когда я использую middleware, как показано ниже, нет проблем:

Route::middleware('auth:api')->get('/user', function (Request $request) {
    return $request->user();
});

Но если я попытаюсь использовать его с apiResources, как показано ниже:

Route::apiResources([
    'user' => 'API\UserController',
    'posts' => 'API\PostController'
])->middleware('auth:api');

Тогда я получить сообщение об ошибке:

php маршрут ремесленника: список

BadMethodCallException

Метод Illuminate \ Routing \ RouteRegistrar :: apiResources не существует.

Как правильно позвонить ApiResource с middleware в routes/api.php?

1 Ответ

2 голосов
/ 23 апреля 2020

Я не верю, что вы можете добавить какое-либо промежуточное программное обеспечение к apiResources, вместо этого вы можете поместить их в группу маршрутов, к которой они применяются

Route::group(['middleware' => 'auth:api'], function () {
    Route::apiResources([
        'user' => 'API\UserController',
        'posts' => 'API\PostController'
    ]);
});

Это также позволит вам сократить определения контроллера с опцией namespace :

Route::group(['middleware' => 'auth:api', 'namespace' => 'API'], function () {
    Route::apiResources([
        'user' => 'UserController',
        'posts' => 'PostController'
    ]);
});
...