Laravel 5.5 在浏览器中渲染 Mailable 类型
Laravel 框架中提供了很方便快捷的面向对象风格的电子邮件相关功能,可以通过 Markdown
语法、Blade
模板引擎来制作邮件模板,然后通过扩展 Mailable
类来配置邮件相关的属性。最后通过 Mail::to()
方法即可快捷地发送邮件出去。有关邮件功能的详细实现可以参见官方文档. 但我们在制作自定义的邮件模板时,如何进行测试以确保在各种邮件客户端中正确显示,确是一个比较大的难题。尽管有一些类似 litmus 这样的工具可以解决邮件测试的问题,但是成本高昂。
另外一种适用于开发中进行邮件模板渲染测试的方法就是直接把最终生成的电子邮件显示在网页中(用于测试模板是否正常工作,不保证兼容性),这种方法的好处显而易见,能够快速检验模板是否正确,数据是否正确呈现,便于实时修改。尽管这是开发中非常普遍的应用场景,但在以往的版本中,想把 Mailable 扩展类与模板结合渲染到浏览器中查看却并不是一件非常便捷的事情。从 Laravel 5.5 版本开始,这个问题得到了改变,Mailable 类实现了 Renderable
接口(Contract),这样我们就能够通过一个url直接在浏览器中查看最终生成的电子邮件。
举个例子,我们首先通过 artisan
工具创建一个 UserWelcome
的 Mailable 扩展类:
php artisan make:mail UserWelcome --markdown=emails.user.welcome
然后,创建一个路由,来显示这个电子邮件:
Route::get('/mail', function() {
return new AppMailUserWelcome();
});
只要直接返回 UserWelcome
类的实例,由于它实现了 Renderable
接口,就可以直接显示在浏览器中。当我们访问这个 url,会看到:
这就是我们的电子邮件最终将呈现在用户邮箱中的样子。开发过程中只要这样验证即可,在最终发布之前,所有的邮件类和邮件模板,可以在真实的邮件客户端中,或者通过电子邮件专用的测试工具进行一次性地测试验证即可。可以避免了开发过程中反复进行测试验证,能够大大节省开发时间。
- 干货 | 深入理解Python装饰器
- 11g dataguard使用总结(r5笔记第12天)
- centos7.4下配置django+uwsgi+nginx
- 11g rac配置scan ip(r6笔记第30天)
- 【C++概念】---vector用法
- 浅谈Orabbix监控指标(r6笔记第27天)
- Orabbix定制监控Oracle的简单配置(r6笔记第26天)
- 【java基础】 线程实例
- 记一次数据库的分析和优化建议(r6笔记第24天)
- linux (ubantu)安装最新版python3.6,以及直接安装anaconda
- 【java基础】匿名类
- 朴素贝叶斯法 2016年11月11日
- 11g中关于控制文件自动备份的改进(r6笔记第22天)
- Java基础(02)-15总结对象数组,集合Collection,集合List
- php概述
- php教程
- php环境搭建
- PHP书写格式
- php变量
- php常量
- PHP注释
- php数组
- php字符串 string
- PHP整型 integer
- PHP浮点型 float
- php布尔型
- php数据类型之数组
- php数据类型之对象
- php数据类型之null
- php数据类型之间的转换
- php运算符
- php表达式
- PHP循环控制
- PHP流程控制
- php函数
- php全局变量
- PHP魔术变量
- php命名空间
- php 日期
- PHP包含文件
- php文件
- PHP 文件上传
- php Cookies
- php Sessions
- php email
- php安全email
- php错误处理
- PHP异常处理
- php过滤器
- PHP 高级过滤器
- php json
- php 表单
- PHP MySQL 简介
- PHP 连接 MySQL
- php创建数据库
- php 创建表
- php mysq 插入数据
- PHP MySQL 插入多条数据
- PHP MySQL 预处理语句
- php mysql 读取数据
- php mysql where
- PHP MySQL Order By
- PHP MySQL Update
- PHP MySQL Delete
- php ODBC
- oracle数据库impdp导入dmp文件功能演示,imp导入IMP-00038: Could not convert to environment character sets handle问题解决
- 弄懂这 5 个问题,拿下 Python 迭代器!
- windows、linux下命令行登录oracle数据库方法,查询sga参数值sql语句
- oracle数据库查询open_cursors值的sql语句,达梦数据库查询MAX_SESSION_STATEMENT值方法,MAX_SESSION_STATEMENT的最大值、上限是多少。
- 达梦数据库启用日志方法,达梦数据库查看日志是否启用,达梦数据库日志文件位置查找
- JavaScript 技术篇 - js 查看哪个元素获取了焦点,js 指定元素获取焦点方法
- 工作10年后,再看String s = new String("xyz") 创建了几个对象?
- Linux达梦数据库:通过disql登录命令行操作数据库,打开达梦数据库自带的数据库管理连接工具
- Dbvis数据库连接工具将查询出数据转化为sql插入语句方法
- JavaScript 技术篇 - js通过xpath路径定位元素方法
- Python+selenium 自动化高级应用篇:借助pyautogui实现web前端带轨迹拖拽功能,解决ActionChains拖拽失效问题
- PG数据库版本查看方法,sql语句查pg数据库版本方法
- Linux下DM达梦数据库导入导出dmp文件实战演示,dexp和dimp命令详细使用方法
- oracle数据库imp导入失败提示:“不是有效的导出文件, 标头验证失败”解决方法,修改dmp文件里oracle数据库版本号方法
- BAT批处理文件无法运行提示“/E /I /Y ‘XCOPY‘ 不是内部或外部命令,也不是可运行的程序或批处理文件”解决方法