0
Laravel에서 다국어 웹 사이트를 만들고 있습니다. 나는 그렇게 할 URL을 필요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');
});
});
});
});
내 미들웨어 "로케일"
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);
}
이제 문제는 때 I 로케일을 첫 번째 매개 변수로 추가해야하는 매개 변수가있는 경로를 사용하십시오. 예를 들어 :
public function destroy($locale, $id)
{
//Any Code
}
나는 $ 로케일의 값을 갖게됩니다 다른 매개 변수 또는 $ ID를 사용할 수 있도록하는 방법에 매개 변수로 $ 로케일을 추가해야합니다 : 이 UsersController의 방법이다 이는 사용자 ID 대신 "en", "ar"입니다.
public function destroy($id)
{
//Any Code
}
예, 가능하지만 사용자가 URL을 변경하여 언어를 변경할 수 없습니다. –
글쎄, 언어를 변경하는 방법, 모든 언어에 대해 루프 루핑을 만들 수있는 방법, 메인 페이지에 대해서만 언어를 변경할 수 있도록하려는 경우 메인 페이지의 랜 거리 변경을 처리하기 위해 추가 경로를 만들 수 있습니다. –