【发布时间】:2018-01-05 06:02:36
【问题描述】:
我正在开发一个多租户应用程序,在添加社交名流包时,我尝试从数据库中为特定网站加载自定义 facebook client_id 和 client_secret。我不能真正使用环境变量,因为每个站点都有自己的自定义 facebook 键。
您似乎无法真正调用 config/services.php 文件中的模型方法,因为它可能尚未加载。我已尝试通过请求生命周期文档来解决此问题,但无济于事。
我还尝试创建一个服务提供者来从我的业务模型的方法中获取值并将其设置为常量,但是当它在应用程序中可用时,config/services.php 文件已经加载.
这是我希望数据库值可用的地方:
config/services.php
'facebook' => [
'client_id' => \App\Business::getAppKeys()->fb_client_id,
'client_secret' => 'your‐fb‐app‐secret',
'redirect' => 'http://your‐callback‐url',
],
错误:
致命错误:在 null 上调用成员函数 connection()
【问题讨论】:
-
你可以把问题转过来,创建一个
ConfigServiceProvider,在数据库中查询你需要的值,然后将它们写入一个配置文件。 -
@fubar 我已经尝试过了,但配置值仍然无法按时提供给服务配置文件。有没有办法改变配置文件夹中文件的加载顺序?
-
我不明白你的意思?配置文件应该可以从服务提供者读取和写入。
-
我的意思是,如果我检查 dd(config('settings.fb'));在 config/services.php 文件中,我发现它为 null,但它在控制器中可用,这意味着它是在需要后设置的
-
我添加了一个答案来说明我的建议。