Laravel:如何避免路由资源的参数名称被翻译
Laravel路由资源:保留英文参数同时翻译URI
当使用trans()定义路由资源的URI时,默认会根据URI的翻译值生成对应参数名(比如荷兰语gebruikers对应{gebruiker}),要保留英文参数{user}且不手动编写完整路由,可通过以下方式实现:
解决方案:指定parameters配置项
在Route::resource的配置数组中添加parameters选项,强制绑定翻译后的URI到英文参数名:
Route::resource(trans('routes.users'), DashboardUserController::class, [ 'as' => 'dashboard', 'names' => 'users', 'parameters' => [ // 键为翻译后的URI值,值为要保留的参数名 trans('routes.users') => 'user' ] ]);
效果验证
执行php artisan route:list后,路由的URI会显示为荷兰语gebruikers,但参数将保持为{user},同时路由名称仍维持dashboard.users.*的结构,既简化了代码又满足需求。
内容的提问来源于stack exchange,提问作者Floris
相关产品推荐
相关产品推荐

