我应该以不同的方式命名我的Laravel路线吗?
我目前在我的 API 中有这些路由:
Route::group(['prefix' => 'v1'], function() {
Route::get('feed', [FeedController::class, 'index']);
Route::get('feed/{page}', [FeedController::class, 'index']);
});
我想创建另一个看起来像这样的路由,只受一些中间件的保护:
Route::group(['prefix' => 'v1', 'middleware' => ['jwt.verify']], function() {
Route::get('feed/following', [FeedController::class, 'following']);
Route::get('feed/following/{page}', [FeedController::class, 'following']);
});
但是,看起来v1/feed/following路由实际上是路由到v1/feed/{page}路由的。
没有我的路线名称,有没有办法解决这个问题?
回答
您可以在v1Api 路径中引入另一个组并设置feed/followingbefore feed/{page}:
Route::group(['prefix' => 'v1'], function() {
Route::group(function() {
Route::get('feed/following', [FeedController::class, 'following']);
Route::get('feed/following/{page}', [FeedController::class, 'following']);
})->middleware('jwt.verify');
Route::get('feed', [FeedController::class, 'index']);
Route::get('feed/{page}', [FeedController::class, 'show']);
});