我应该以不同的方式命名我的 Laravel 路线吗?

zer*_*psi 0 laravel

我目前在我的 API 中有这些路由:

Route::group(['prefix' => 'v1'], function() {
    Route::get('feed', [FeedController::class, 'index']);
    Route::get('feed/{page}', [FeedController::class, 'index']);
});
Run Code Online (Sandbox Code Playgroud)

我想创建另一个看起来像这样的路由,只受一些中间件的保护:

Route::group(['prefix' => 'v1', 'middleware' => ['jwt.verify']], function() {
    Route::get('feed/following', [FeedController::class, 'following']);
    Route::get('feed/following/{page}', [FeedController::class, 'following']);
});
Run Code Online (Sandbox Code Playgroud)

但是,看起来v1/feed/following路由实际上是路由到v1/feed/{page}路由的。

没有我的路线名称,有没有办法解决这个问题?

Dan*_*esa 5

您可以在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']);
});
Run Code Online (Sandbox Code Playgroud)