You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 9中如何为资源控制器指定自定义路由名称?

解决Laravel 9资源路由在路由组中的命名问题

你遇到的问题是因为在prefix('users')的路由组中使用空URI的资源路由时,Laravel无法自动生成带前缀的路由名称。以下是两种正确的解决方式:

方法一:使用names()方法指定路由名称前缀

直接通过names()方法给资源路由的所有动作统一设置名称前缀,生成的路由名称会自动带上users.前缀,和你最初未加路由组时的命名完全一致:

Route::prefix('users')->group(function () {
    Route::resource('/', UsersController::class)->names('users');
});

这样生成的路由名称就是users.index、users.create等,同时URI会是users/、users/create等符合预期的格式。

方法二:通过资源路由的选项参数指定完整名称

如果需要更精细地控制每个路由的名称,可以传递names选项数组,逐个指定每个动作的路由名称:

Route::prefix('users')->group(function () {
    Route::resource('/', UsersController::class, [
        'names' => [
            'index' => 'users.index',
            'create' => 'users.create',
            'store' => 'users.store',
            'show' => 'users.show',
            'edit' => 'users.edit',
            'update' => 'users.update',
            'destroy' => 'users.destroy',
        ]
    ]);
});

关键说明

你之前尝试的->name('users')写法错误,因为name()方法是给单个路由设置名称,而资源路由会生成多个路由条目,必须使用names()方法(复数形式)来为资源路由的所有动作设置名称前缀。

内容的提问来源于stack exchange,提问作者Pouya Vaghefi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 20:55:19