You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Laravel的Session中获取经纬度并设置默认值?

Laravel 从Session获取经纬度及默认值配置方案

基础直接获取方式

Laravel 所有Session读取方法都原生支持传入第二个参数作为默认返回值,有三种常用写法:

  • 使用全局session()辅助函数(最简洁)
// 第二个参数为对应默认值,示例默认值为北京经纬度
$latitude = session('user_location.lat', 39.9042);
$longitude = session('user_location.lng', 116.4074);
  • 使用Request实例读取
public function index(\Illuminate\Http\Request $request)
{
    $latitude = $request->session()->get('user_location.lat', 39.9042);
    $longitude = $request->session()->get('user_location.lng', 116.4074);
}
  • 使用Session门面读取
use Illuminate\Support\Facades\Session;

$latitude = Session::get('user_location.lat', 39.9042);
$longitude = Session::get('user_location.lng', 116.4074);

全局统一默认值配置方案

如果项目全链路需要复用同一套默认经纬度,建议把默认值抽离到配置文件统一管理,避免硬编码:

  1. 新建config/location.php配置文件,写入默认值配置:
<?php
return [
    'default_latitude' => 39.9042,
    'default_longitude' => 116.4074,
];
  1. 读取Session时直接调用配置项作为默认值:
$latitude = session('user_location.lat', config('location.default_latitude'));
$longitude = session('user_location.lng', config('location.default_longitude'));

可选优化:封装全局辅助函数

如果项目频繁需要读取用户位置信息,可以封装全局辅助函数简化调用:

  1. 在app目录下新建helpers.php文件
  2. 修改composer.json配置,添加自动加载规则:
"autoload": {
    "files": [
        "app/helpers.php"
    ]
},
  1. 执行命令composer dump-autoload加载配置
  2. 在helpers.php中写入封装方法:
<?php
if (! function_exists('get_user_coordinate')) {
    function get_user_coordinate(): array
    {
        return [
            'lat' => session('user_location.lat', config('location.default_latitude')),
            'lng' => session('user_location.lng', config('location.default_longitude')),
        ];
    }
}
  1. 全局任意位置直接调用即可获取经纬度数组:
$coordinate = get_user_coordinate();
// $coordinate['lat'] 为纬度,$coordinate['lng'] 为经度

内容的提问来源于stack exchange,提问作者user16982082

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 22:18:01