Laravel 拉维尔-遗忘参数

Laravel 拉维尔-遗忘参数,laravel,routes,Laravel,Routes,我的项目是多语言的,所以在大多数路由中我添加了参数“locale”。但后者我不需要将“locale”参数传递给我的控制器。我尝试使用forgetParameter()方法删除此参数,但使用此方法时出现错误“路由未绑定” 所以我做错了什么 如何从所有路由中删除“区域设置” Laravel 5.8 我的路线文件 Route::group(['prefix' => '{locale}','where' => ['locale' => '[a-zA-Z]{2}']], function

我的项目是多语言的,所以在大多数路由中我添加了参数“locale”。但后者我不需要将“locale”参数传递给我的控制器。我尝试使用forgetParameter()方法删除此参数,但使用此方法时出现错误“路由未绑定

所以我做错了什么

如何从所有路由中删除“区域设置”

Laravel 5.8

我的路线文件

Route::group(['prefix' => '{locale}','where' => ['locale' => '[a-zA-Z]{2}']], function() {

Auth::routes([app()->getLocale()]);
Route::get('/', 'HomeController@index')->name('mainPage');


Route::get('/user/{id}','UserController@showUser')->name('getUserProfile')->forgetParameter('locale');
Route::get('/user/{id}/edit','UserController@editUser')->name('editUserProfile')
    ->middleware('can:editUser,App\User,id')->forgetParameter('locale');
Route::patch('/user/{id}/edit','UserController@updateUser')->name('updateUserProfile')
    ->middleware('can:updateUser,App\User,id')->forgetParameter('locale');

});
这和这个问题不一样-

这个问题的解决方案对我来说不起作用。我的问题是为什么“ForgotParameter()”会抛出错误

另一个问题是,为什么我不能在中间件中使用这种结构:

$request->route()->forgetParameter('locale')
我有以下错误:

对成员函数的调用为空


谢谢。

可能的副本我也有类似的问题。您是否可能正在尝试使用全局中间件?因此,在globals中无法访问路由,因此需要将其注册为路由中间件。