escuelademusica / laravel-mjml
0.1.2
2022-03-14 07:07 UTC
Requires
Requires (Dev)
- orchestra/testbench: ^6.22
This package is auto-updated.
Last update: 2024-09-14 12:34:26 UTC
README
安装
composer require escuelademusica/laravel-mjml
您需要通过 npm 安装 MJML。
npm install --save mjml
您可以通过在 .env
文件中添加以下内容来自定义 MJML 文件的路径: MJML_BINARY_PATH=/path/to/mjml/bin/mjml
使用方法
有两种方式可以使用此包。
1. 扩展我们的自定义邮件类
<?php namespace App\Mail; use EscuelaDeMusica\MJML\Mail\Mailable; class CustomMailable extends Mailable { /** * Build the message. * * @return $this */ public function build() { return $this->mjml('view.name',); } }
2. 使用 InteractsWithMjml 特性与 laravel mailable
这与 CustomMailable 的工作方式相同,但您不需要扩展 mailable。您可以使用此特性与任何 laravel mailable 一起使用,但请记住编辑 render 函数,使其看起来像这样
<?php namespace App\Mail; use Illuminate\Mail\Mailable; use EscuelaDeMusica\MJML\InteractsWithMjml; class SomeEmail extends Mailable { use InteractsWithMjml; public function buildView() { if (isset($this->mjml)) { return $this->buildMjmlView(); } return parent::buildView(); } public function build () { return $this->mjml('view.name'); } public function render() { return $this->renderMjml(); } }
对于您在 toMail
方法中使用的 laravel 通知,您通常会返回一个 MailMessage 实例。该包扩展了这个类,并向其中添加了 mjml 函数。要使用 mjml 邮件进行通知,您需要扩展该包提供的 MjmlMessage。
<?php namespace App\Notifications; use EscuelaDeMusica\MJML\Mail\Messages\MjmlMessage; class SomeNotification extends Notification { public function toMail($notifiable) { return (new MjmlMessage) ->subject('Notification Subject') ->mjml('notification.name'); } }
它的工作原理。
要包含其他文件到您的 mjml 中,您可以使用 mj_include
指令。该指令接受文件的路径和 mjml-include 类型。
@mjml('view.name');
这受到 (https://github.com/asahasrabuddhe/laravel-mjml) 的启发,但更优化。编译了视图编译文件的 mjml。
此外