【问题标题】:Printing mail template from db table从 db 表打印邮件模板
【发布时间】:2018-11-29 09:58:50
【问题描述】:

我想在 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>
&rarr; “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>
&rarr; “Asset” and see your status</p>
<?php } ?>

我想从获取的正文字段中发送带有填充内容的邮件。 我试过了

$mail_content=mail_template::where('config_name','=','approve')->first()->body;
echo $mail_content;

它只是将内容打印为文本。我想在变量中填写值

【问题讨论】:

标签: php laravel laravel-5 laravel-5.3


【解决方案1】:

您可以尝试将电子邮件模板另存为

<p>{{name_replace}}</p>
<p>{{email_replace}}</p>

从数据库中获取模板后,尝试在模板上使用 php str_replace 函数和值。例如

$template = str_replace("{{name_replace}}", "Zoe", $template);

我认为这将解决您的问题。让我知道这是否有帮助。

【讨论】:

    【解决方案2】:

    嗯,您在加载 电子邮件模板 时使用的这种方法,可以说,从您的数据库中提取的方法很棒,问题是它是用 PHP 编写的。

    不要将模板存储在数据库中,而是使用视图。在您的\resources\views 中创建一个包含所有邮件模板的文件夹,在本例中为文件夹。在您的控制器中执行以下操作:

    // 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');
    });
    

    地点:

    • folder.view 是位于 folder 文件夹中的 view.blade.php 视图。
    • $data 是您想要传递给视图的任何内容。
    • 其余的取决于您的喜好,阅读文档:laravel Mail

    希望这些信息有用并继续编码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-29
      • 1970-01-01
      • 2021-05-23
      • 2013-07-21
      • 1970-01-01
      相关资源
      最近更新 更多