0
私はLaravelで多言語のWebサイトを作成しています。Laravelのコントローラメソッドにパラメータが挿入されないようにする方法
https://website.com/en/admin/user/1
https://website.com/ar/admin/user/1
ので、私のルートファイルは以下のようになります。:
Route::group(['prefix' => '{locale}'], function(){
Route::middleware("locale")->group(function() {
Route::group(['prefix' => 'admin', 'as' => "admin.", "namespace" => "Admin"],function(){
Route::get('login', '[email protected]')->name("signin")->middleware("Guest");
Route::post('login', '[email protected]')->name('login')->middleware("Guest");
Route::group(["middleware" => "Admin"], function(){
Route::get('/', ["as" => "dashboard", "uses" =>'[email protected]']);
Route::get('logout', '[email protected]')->name('logout');
Route::resource('users', 'UsersController');
});
});
});
});
マイミドルウェア「ロケール」:私はURLはそのようにする必要が
public function handle($request, Closure $next)
{
URL::defaults(['locale' => $request->segment(1)]);
if(in_array($request->segment(1), config('app.locales')))
{
app()->setLocale($request->segment(1));
}
return $next($request);
}
今の問題は、そのとき、私です私は最初のパラメータとしてロケールを追加する必要があるパラメータを使用してルートを使用しようとします。たとえば:
public function destroy($locale, $id)
{
//Any Code
}
私は他のパラメータを使用できるようにするメソッドにパラメータとして$ロケールを追加する必要がありますまたは$ idは$ロケールの値を持つことになります: これはUserControllerにある状態方法であり、これはユーザーIDの代わりに "en"、 "ar"です。
public function destroy($id)
{
//Any Code
}
はい、できますが、ユーザーはURLを変更して言語を変更できなくなりました。 –
これは、言語の変更を許可する方法、すべての言語でループルーピングを作成する方法、メインページの言語のみを変更できるようにする場合、メインページのランゲージの変更を処理するために追加のルートを作成することができます –