我想从laravel视图刀片中的db表中打印邮件内容。我有表mail_template。 我想从该表中获取字段正文。
body字段是一个长文本,值包含在PHP内容中
body field value
<?php
if(($logged==Auth::User()->user_name && $finance_review!='')|| $status=='Rejected'){
?>
<span>Hello {{$requestor_name}},</span>
<p>{{$approver_name}} has {{$status}} your Asset
request. Please login to <a href='asd.com'>http://systems.test.com</a>
→ “Asset” and see your status</p>
<?php }
else{ ?>
<span>Hello {{$approver_name}},</span>
<p>{{$requestor_name}} has raised request.
Please login to <a href=''>test</a>
→ “Asset” and see your status</p>
<?php } ?>
我想从获取的正文字段发送包含填充内容的邮件。 我尝试过
$mail_content=mail_template::where('config_name','=','approve')->first()->body;
echo $mail_content;
它只是将内容打印为文本。我想在变量中填充值
答案 0 :(得分:0)
您可以尝试将电子邮件模板另存为
<p>{{name_replace}}</p>
<p>{{email_replace}}</p>
从数据库中获取模板后,请尝试对具有值的模板使用php str_replace函数。例如
$template = str_replace("{{name_replace}}", "Zoe", $template);
我认为这可以解决您的问题。让我知道是否有帮助。
答案 1 :(得分:0)
嗯,您使用这种方法加载电子邮件模板,也就是说,从您的数据库中获得的效果很棒,问题在于它是用PHP编写的。
使用视图代替将模板存储在数据库中。在您的 \ resources \ views 中创建一个文件夹,其中将保存您所有的邮件模板,在本例中为 folder 。然后在您的控制器中执行以下操作:
// Use Mail class, right on top:
use Illuminate\Support\Facades\Mail;
// Load the view to send
Mail::send('folder.view', $data, function ($mail) {
$mail->from('from@email.com', 'Description');
$mail->to(['to@email.com']);
$mail->subject('SUBJECT');
});
位置:
希望此信息会有用并保持编码。