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

使用mcamara/laravel-localization时,如何获取Laravel默认配置locale?

解决mcamara/laravel-localization覆盖默认locale后获取原始配置值的问题

因为mcamara/laravel-localization会在运行时动态修改app.locale的配置值,所以直接调用config('app.locale')拿到的是当前活跃的语言,而非config/app.php里定义的默认值。你可以用以下几种方法获取原始默认locale:

  • 使用Laravel Config类的原始值获取方法:Laravel的Config实例提供了getOriginal方法,能直接获取配置文件中的初始值,不受运行时修改影响。代码如下:

    // 两种写法都可使用
    $defaultLocale = config()->getOriginal('app.locale');
    // 或者通过门面调用
    $defaultLocale = Illuminate\Support\Facades\Config::getOriginal('app.locale');
    
  • 直接读取config/app.php文件:如果不想依赖框架内部方法,可直接读取配置文件内容,但这种方法在配置被缓存时会失效(缓存后系统不会读取原文件),代码示例:

    $appConfig = require config_path('app.php');
    $defaultLocale = $appConfig['locale'];
    
  • 新增专门的默认locale配置项:最稳妥直观的方式是在config/app.php里新增独立配置项存储默认语言,比如:

    // 在config/app.php中添加
    'default_locale' => 'en',
    

    之后直接通过config('app.default_locale')就能获取定义的默认语言,完全不受运行时语言切换影响。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 07:17:11