我有一个多租户应用程序我正在努力,并在添加社交名录包时,我尝试从数据库加载特定网站的自定义facebook client_id和client_secret.我无法真正使用env变量,因为每个站点都有自己的自定义facebook键.
看来你无法在config / services.php文件中真正调用模型的方法,因为它可能尚未加载.我已经尝试通过请求生命周期文档来解决这个问题无济于事.
我还尝试创建一个服务提供程序来从我的Business模型的方法中获取值并将其设置为常量,但是,当它在应用程序中可用时,仍然加载了config / services.php文件.
这是我想要数据库值的地方:
配置/ services.php
'facebook' => [
'client_id' => \App\Business::getAppKeys()->fb_client_id,
'client_secret' => 'your‐fb‐app‐secret',
'redirect' => 'http://your‐callback‐url',
],
错误:
Fatal error: Call to a member function connection() on null
解决方法:
你真的不应该这样做.从模型初始化数据库连接需要加载所有配置,并且您打算使用这些连接来定义配置.你发现自己有一个循环依赖问题.
我想建议你看一下你想要使用的社交名媛套餐.如果服务中不存在用于在运行时设置/覆盖凭据的工具,请查看您是否能够使用您自己的实现来扩展服务.我认为这将是实现你想要做的事情的唯一途径.
除此之外,配置文件应该仅由标量值和数组组成,以便可以缓存它们.
标签:php,laravel,laravel-5
来源: https://codeday.me/bug/20190622/1264485.html