使用来自数据库的值动态配置邮件[Laravel]
- 论坛
- 使用来自数据库的值动态配置邮件[Laravel]
6 浏览
使用来自数据库的值动态配置邮件[Laravel]
我在我的Laravel应用程序中创建了一个服务提供者SettingsServiceProvider
。它从数据库中缓存了设置表。
$settings = $cache->remember('settings', 60, function() use ($settings) { return $settings->pluck('value', 'name')->all(); }); config()->set('settings', $settings);
settings
表:
我可以像这样从表中输出值:
{{ config('settings.sitename') }} //返回“Awesome Images”
这在App\Http\Controllers
中的任何blade文件或控制器中都可以正常工作。
问题:
我尝试在App\config\mail.php
中输出值,如下所示:
'driver' => config('settings.maildriver'), 'host' => config('settings.mailhost'),
但是我得到了这个错误:
Missing argument 1 for Illuminate\Support\Manager::createDriver()
更新:
我创建了一个新的服务提供者MailServiceProvider
来覆盖Mail.php中的设置,如下所示:
但是我仍然得到相同的错误!
是否有任何方法可以在创建swiftmailer传输之前动态覆盖默认的邮件配置(例如,配置存储在数据库中)?