【问题标题】:Laravel: render templates in databaseLaravel:在数据库中渲染模板
【发布时间】:2015-06-04 06:50:58
【问题描述】:

我的 Laravel 应用程序允许用户修改电子邮件模板,然后将它们保存到数据库。

示例:

客户 {{ $customer_name }} 已接受您为 PO {{ $po_no }} 建议的时间 {{ $timing }}

(用户可以将 'customer' 更改为 'client' 等。但保持 {{ }} 不变)

然后应用程序将下面的动态数据加载到上面的模板中。

$data = array('customer_email'=> "email@mail.com", '时间'=> "2pm",'po_no' => "PO001" );

然后将这些呈现的文本通过电子邮件发送到一些电子邮件。

我该怎么做?

改写:

  1. 从数据库加载文本
  2. 将其设为 Blade 模板
  3. 使用数据渲染该模板

我卡在#2

【问题讨论】:

  • 你不能用View::render()吗?
  • @Ravan,怎么样? Laravel 只接受归档视图?
  • 没有eval() 是不可能的,我不想走那条路……
  • 我目前的解决方案:将可自定义的模板保存到视图文件中。

标签: php templates laravel


【解决方案1】:

将电子邮件视图添加到您的视图/电子邮件文件夹
例如:ma​​il_template.blade.php

Customer {{ $customer_name }} has accepted your proposed
 timing {{ $timing }} for PO {{ $po_no }}

发送方法

Mail::send('emails.mail_template', array('customer_email'=> "email@mail.com", 'timing'=> "2pm",'po_no' => "PO001" ), function($message)
            {
                $message->to('sendto@gmail.com')->subject('your email subject');
            });

进一步阅读Official Doc

【讨论】:

  • 而不是使用数组('customer_email'=> "email@mail.com".....) 你可以使用你预定义的数组 $data
  • 你的意思是,创建mail_template.blade.php文件,然后把db模板存进去?
猜你喜欢
  • 1970-01-01
  • 2021-12-11
  • 2021-05-21
  • 2016-04-04
  • 2018-10-03
  • 1970-01-01
  • 2017-02-08
  • 1970-01-01
相关资源
最近更新 更多