我有一个名为setting
的服务,可以从某个地方获取使用者的偏好。我需要在配置其他服务时使用它。例如,我需要获取用户的电子邮件地址电子邮件主机。
在'host' => app('setting')['email']['host']),
文件中使用config/mail.php
,
不起作用。似乎app()服务在该阶段无法访问。
这样做的正确方法是什么?
答案 0 :(得分:2)
您可以在服务提供商的运行时更改配置。
让我们使用Laravel附带的app/Providers/AppServiceProvider
。因此,在boot()
方法中,您可以对配置进行任何更改,如下所示:
public function boot()
{
$this->app->make('config')->set('whatever.config', 'This has changed');
}