Laravel Mail 消息组件前缀

Mar*_*kus 1 php laravel laravel-blade laravel-mail

我正在尝试为 Laravel 自定义我的电子邮件模板。所以我发布了通知和邮件供应商。

resources/views/vendor/notifications/email.blade.php文件中框架调用这样的组件

@component('mail::button')
Run Code Online (Sandbox Code Playgroud)

前缀代表什么mail::

我尝试在 下编写自己的组件locatete resources/views/vendor/mail/mycomponent.blade.php。所以我也将其称为默认组件。

@component('mail::mycomponent')
Run Code Online (Sandbox Code Playgroud)

这是行不通的。这里的错误:

View [mycomponent] not found. (View: /resources/views/vendor/notifications/email.blade.php)
Run Code Online (Sandbox Code Playgroud)

所以我的问题是前缀mail::点在哪里?我可以将它用于我自己的组件吗?

Mih*_*nde 12

当你这样做时,php artisan vendor:publish --tag=laravel-maillarvel 在里面创建了 2 个目录,resources/views/vendor/mail名为htmlmarkdown

您需要将组件放在那里,以确保它可以在电子邮件模板中访问。

如果你想创建一个组件,你需要创建2个文件: resources/views/vendor/mail/html/mycomponent.blade.phpresources/views/vendor/mail/markdown/mycomponent.blade.php

Markdown 将具有数据和插槽,而 html 将具有要呈现的实际 html 结构。

前缀mail::是 Laravel 查找邮件组件的方式,它并不是像我们这样的 Blade 中的文件夹路径layouts.default等。

请参阅文档了解更多详细信息。