【问题标题】:How to access variable set in service provider inside a config file?如何访问配置文件中服务提供者中设置的变量?
【发布时间】:2017-09-17 17:56:28
【问题描述】:

我目前在一个允许管理员修改一些设置变量的管理面板上工作。

到目前为止,我将值存储在“SettingServiceProvider”的boot() 方法中,如下所示:

config()->set('sparkpost_secret', $setting->gets('general')->sparkpost_secret);

但是,现在,我需要 config/services.php 中的这些变量,我会尝试将其设置为:

'sparkpost' => [
    'secret' => config('sparkpost_secret'),
],

但是config('sparkpost_secret') 返回 null,而当我尝试在任何控制器中访问它时,将返回正确的值。似乎是在服务提供者之前加载了配置文件。

如何访问配置文件中的变量(在提供程序中创建)?

感谢您的帮助!

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    把它放在注册方法中,一切都会正常工作和/或你可以设置protected $defer = true;来延迟加载服务提供者

    【讨论】:

    • 不幸的是,它仍然返回null。我不认为问题在于推迟服务提供者,因为它已经在配置文件完成后被加载。所以,我相信这不会有什么不同。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多