我正在使用 an emogrifier 来格式化 Blade 模板的结果,以便我可以通过电子邮件发送它。
$html = View::make('emails.notification', [
'data' => $data
]);
$emogrifier = new Emogrifier($html, null);
$result = $emogrifier->emogrify();
// now I can send the result in an email...
这按预期工作,但为了干净的代码和可测试性,我想扩展我的 Blade 模板以在模板本身内对 HTML 进行 emogrify。像这样的东西:
@emogrify
<style>
.red-text {
color: red;
}
</style>
<p class="red-text">This text is red</p>
@endemogrify
...但看起来 Blade 指令不允许像这样打开/关闭标签。有没有更好的方法来实现这一点?
最佳答案
这是我在 laravel 中处理电子邮件 Blade 的方法(我通常不使用 emogrifier,但希望这会有所帮助):
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<style>
/* Include styles for all emails here */
</style>
@section('head')
@show
</head>
<body>
<div class="email-body">
@section('body')
@show
</div>
</body>
</html>
然后当我想创建电子邮件时,我扩展 Blade :
@extends('emails.email')
@section('head')
<style>
/* Add additional styling here if you need to! */
</style>
@stop
@section('body')
<!-- Email body content here! -->
<h1>Welcome new user!</h1>
@stop
关于php - 干净地将 Laravel Blade 模板文件 emogrize 的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42254346/