如何仅修改Laravel资源路由中update方法的路由参数键名?
Laravel资源路由单独修改update方法的路由参数
Laravel默认资源路由里,update方法对应的路由参数是{article},但框架本身不支持通过单一的Route::resource调用单独修改某个方法的参数名,你之前的写法无效是因为资源路由的配置选项里没有针对单个方法设置参数的语法。
如果只想修改update方法的路由参数,可以用以下两种方式实现:
方法一:拆分路由定义
先排除资源路由中的update方法,再单独定义update路由并指定自定义参数:
// 生成除update外的所有资源路由 Route::resource('article', \App\Http\Controllers\ArticleController::class, ['except' => ['update']]); // 单独定义update路由,使用自定义参数名 Route::put('article/{dashboard_article_update}', [\App\Http\Controllers\ArticleController::class, 'update'])->name('article.update');
方法二:全局修改资源参数(不推荐,会影响所有方法)
如果可以接受把整个资源路由的参数(比如show、edit、update等方法的参数)都改成{dashboard_article_update},可以用parameters选项:
Route::resource('article', \App\Http\Controllers\ArticleController::class, [ 'parameters' => [ 'article' => 'dashboard_article_update' ] ]);
但这种方式会修改所有相关资源路由的参数名,不符合你仅修改update方法的需求。
综上,若只想单独修改update方法的路由参数,只能通过拆分路由的方式实现,无法仅靠单一的Route::resource配置完成。
内容的提问来源于stack exchange,提问作者ali
相关产品推荐
相关产品推荐

