【发布时间】:2023-04-01 18:00:01
【问题描述】:
在定义一个简单的下面的路由到web.php之后:
Route::prefix('{language}')->middleware(['setLanguage'])->group(function () {
Route::prefix('panel')->group(function () {
Route::prefix('contactusmodule')->group(function () {
Route::resource('contactUs', 'ContactUsController')->names('contactUs');
});
});
});
我尝试通过此代码获取路线名称:
request()->route()->parameters()
这里我的路由参数是:language 和 contactUs 当我找到这个网址时:
http://127.0.0.1:8000/en/panel/contactusmodule/contactUs/3/edit
这条路线为:
route('contactUs.edit',[app()->getLocale(),$contact->id])
我应该得到language 和contactUs,但我得到了这个数组:
array:2 [
"language" => "en"
"contactU" => "3"
]
正如你在这个输出问题中看到的那样,contactU 应该是contactUs
倾销路线的输出:
dd(request()->route()->getName(),request()->route()->parameters());
//output:
"contactUs.edit"
array:2 [▼
"language" => "en"
"contactU" => "3"
]
在我们的代码中,默认情况下我们应该从request()->route()->getName() 获取值。 laravel 路由名称有限制吗?如何解决这个问题?
提前致谢
【问题讨论】:
-
Route::resource用于资源名称,它会自动将它们转换为所用参数名称的“单数”,contactUs的单数(基于执行此操作的机制)是contactU...您可以为此路由定义禁用此功能,或者如果您愿意,可以明确定义参数的名称 -
@lagbox 谢谢,我该如何禁用它?
标签: laravel