如何将Laravel Mailable渲染为变量并获取其HTML内容?
获取Laravel Mailable的HTML内容
嘿,我之前也碰到过一模一样的需求!其实Laravel的Mailable类已经内置了专门的方法来获取渲染后的HTML内容——就是render()方法,完全不用自己手动折腾视图渲染的逻辑~
针对你的场景,直接这么写就能实现需求:
$mail->html = (new InactivityReminder())->render();
为什么这个方法能生效?
- 调用
render()时,会自动触发Mailable里的build()方法,处理你定义的markdown视图; - 它会把markdown模板转换成完整的HTML,包括Laravel邮件默认的布局样式,和实际发送时的邮件内容完全一致;
- 如果你的Mailable需要接收参数(比如用户信息),只需要正常在构造函数里传递,再调用
render()就好,比如:$mail->html = (new InactivityReminder($user))->render();
之前我也找过类似toHtml()的方法,后来才发现Laravel已经把这个功能封装在render()里了,用起来特别顺手!
内容的提问来源于stack exchange,提问作者Chris
相关产品推荐
相关产品推荐

