我允许管理员在数据库中动态更改电子邮件凭据,因此现在如何检索.env文件以发送电子邮件。
MAIL_DRIVER={{config('settings.mail_driver')}}
MAIL_HOST={{config('settings.mail_host')}}
MAIL_PORT={{config('settings.mail_port')}}
MAIL_USERNAME={{config('settings.mail_username')}}
MAIL_PASSWORD={{config('settings.mail_password')}}
MAIL_ENCRYPTION={{config('settings.mail_encryption')}}
它不起作用,所以请告诉我正确的检索方法。
答案 0 :(得分:1)
我之前遇到过这个问题,我创建了一个新的服务提供商MailServiceProvider
,并在其中用
mail
配置
public function boot() {
$mail = // get value in DB
config(['mail.driver'=> $mail->driver]);
config(['mail.host'=>$mail->host]);
}
答案 1 :(得分:0)
在您的config / app.php中
#include<iostream>
#include<string>
using std::string; using std::vector;
int main()
{
vector<string> temp {"aaa", "bbb", "ccc"};
vector<string>::iterator iter_str = temp.begin();
bool result = iter_str->empty(); //the result of iter_str->empty() is not an lvalue right?
return 0;
}
在您的.env文件中
'mail_driver' => env('MAIL_DRIVER')
然后在任何地方调用它
MAIL_DRIVER= what ever value you want here
答案 2 :(得分:0)
这不是动态更改.env
的好主意,但是仍然可以尝试使用此选项。
public static function changeEnvironmentVariable($key,$value)
{
$path = base_path('.env');
if(is_bool(env($key)))
{
$old = env($key)? 'true' : 'false';
}
elseif(env($key)===null){
$old = 'null';
}
else{
$old = env($key);
}
if (file_exists($path)) {
file_put_contents($path, str_replace(
"$key=".$old, "$key=".$value, file_get_contents($path)
));
}
}
您必须传递$key
变量名及其s value in
$ value`。