php - 在 Laravel 中获取用户 IP 地址而不安装软件包
问题描述
我的网站是三语的,我现在有一个问题,通常,该网站是波斯语的,用户首先看到波斯语网站,可以从语言更改选项更改网站的语言。如何根据访问者的 IP 更改语言?例如:波斯语用户,打开站点,查看波斯语站点,讲阿拉伯语的用户,打开站点,查看阿拉伯语站点。这是用于更改语言的方法。
控制器:
public function index($locale) //en | fa
{
App::setLocale($locale);
Session()->put('local', $locale);
return redirect()->back();
}
应用程序/配置:
'timezone' => 'Asia/Tehran',
'locale' => 'fa',
'fallback_locale' => 'fa',
下拉式菜单:
<div class="dropdown show nav-link">
@php $local =Session()->get('local'); @endphp
<a class="btn dropdown-toggle " href="#" role="button" id="dropdownMenuLink" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
<img src="{{asset('images/translate/translate.png')}}" width="40px" height="40px">
@switch($local)
@case('fa')
فارسی
@break
@case('en')
English
@break
@case('ar')
العربی
@break
@endswitch
</a>
<div class="dropdown-menu" aria-labelledby="dropdownMenuLink">
<a class="dropdown-item text-right nav-link " href="{{route('language','fa')}}"><img
src="{{asset('images/translate/iran.png')}}"
width="30" height="30"
>
فارسی</a>
<a class="dropdown-item text-right nav-link" href="{{route('language','en')}}"> <img
src="{{asset('images/translate/english.png')}}" width="30" height="30"
>English</a>
<a class="dropdown-item text-right nav-link" href="{{route('language','ar')}}"> <img
src="{{asset('images/translate/emarat.png')}}" width="30" height="30"
>العربی</a>
</div>
</div>
溃败
Route::get('lang/{locale}', 'LocalizationController@index')->name('language');
解决方案
萨拉姆。
request()
您可以从每个请求(每个路由)中可用的方法获取用户 IP 。例如在你的index
方法中:
public function index($locale) //en | fa
{
$userIp = request()->ip();
App::setLocale($locale);
Session()->put('local', $locale);
return redirect()->back();
}
推荐阅读
- sql-server - 隐式类型转换:JSON_VALUE() vs TRY_CAST(JSON_VALUE())
- python - 如何使用 Selenium 在 Instagram 上向下滚动对话框?
- c++ - 如何准确识别作为车牌的斑点?这里有两种类型的车牌,似乎无法用一种算法来检测这两种类型
- ios - Xcode 编辑器复制命令 (command + c) 有时不起作用?
- google-cloud-endpoints - 方法不存在:部署 Cloud Endpoint
- c++ - 不同编译器中的 std::filesystem 和 std::experimental::filesystem 问题
- typescript - 覆盖子界面中的成员类型
- ruby - 无法安装 Ruby Gems 3.0.3
- javascript - 将项目过滤到数组内的数组中?
- java - 从 MultiValueMap 中获取值