如何使用serviceProvider到其他文件laravel



我打算在mail.php中使用我的新serviceProvider,因为我需要从数据库而不是.env中获取值。我可以在这个网站上显示一个解决方案,一个人创建了一个serviceProvider,并获得他所需的所有数据。

我的问题是,如何在mail.php中使用此提供程序?

我的提供商:

public function register()
{
if (Schema::hasTable('app_settings')) {
$mail = DB::table('app_settings')->first();
if ($mail) //checking if table is not empty
{
$config = array(
'driver'     => $mail->driver,
'host'       => $mail->host,
'port'       => $mail->port,
'from'       => array('address' => $mail->from_address, 'name' => $mail->from_name),
'encryption' => $mail->encryption,
'username'   => $mail->username,
'password'   => $mail->password,
'sendmail'   => '/usr/sbin/sendmail -bs',
'pretend'    => false,
);
Config::set('mail', $config);
}
}
}
/**
* Bootstrap services.
*
* @return void
*/
public function boot()
{
//
}

mail.php

例如:'driver' => env('MAIL_DRIVER', 'smtp'),

如何将提供商的驱动程序调用到驱动程序邮件中.php

感谢您的帮助,奖励

你做不到,这不是一个好主意。

最简单的方法是在加载完所有内容后覆盖您的配置。

您可以使用AppServiceProdiver.php文件,在boot()功能中:

public function boot()
{
// adapt of course...
$yourConfig = DB::select('SELECT * FROM your_config_table');
config()->set([
'app.mail.driver' => $yourConfig[0]->value
]);
}

相关内容

  • 没有找到相关文章

最新更新