干净地模拟Laravel刀片模板文件的最佳方法是什么?

时间:2017-02-15 16:03:33

标签: php laravel laravel-5 blade

我正在使用an emogrifier格式化刀片模板的结果,以便我可以通过电子邮件发送它。

$html = View::make('emails.notification', [
    'data' => $data
]);

$emogrifier = new Emogrifier($html, null);

$result = $emogrifier->emogrify();

// now I can send the result in an email...

这可以按预期工作,但为了清晰的代码和可测试性,我想扩展我的刀片模板以在模板本身内进行HTML格式化。像这样:

@emogrify
  <style>
    .red-text {
      color: red;
    }
  </style>
  <p class="red-text">This text is red</p>
@endemogrify

...但看起来Blade指令不允许打开/关闭这样的标签。有没有更好的方法来实现这一目标?

1 个答案:

答案 0 :(得分:-1)

以下是我在laravel中使用电子邮件刀片的方法(我通常不会使用emogrifier,但希望这有帮助):

  

创建基本电子邮件刀片(通常位于resources / views / emails / email.blade.php中):

<!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>

然后,当我想创建一封电子邮件时,我会扩展刀片:

  

在resources / views / emails / new-user-email.blade.php中创建一个新文件:

@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