【问题标题】:Laravel 5.4 wrongly mix HTML components in Markdown MailableLaravel 5.4 在 Markdown Mailable 中错误地混合 HTML 组件
【发布时间】:2018-01-31 08:54:10
【问题描述】:

我有一些普通的 Mailable,其中包含一些硬编码的内容。

我已经发布了可邮寄的视图,将内容更改为降价,并将 ->view 替换为 ->markdown

现在邮件的markdown格式很好。

但是 Laravel 在编译该 markdown 后会选择 HTML 组件定义,原因我无法想象。并且在它使用 Markdown 版本作为消息之后,它在一个 Mailable Markdown 视图中混合了两种类型!

我试过了:

  • php artisan cache:clear
  • php artisan view:clear
  • 向 html 组件添加 markdown - 不起作用,Laravel 会在 markdown 编译步骤之后使用它们
  • ->markdown 更改为 ->markdown - 是的,它会给出有关不存在方法的错误

使用: PHP 7.0,Laravel 5.4.28

问:是否有任何 Laravel 全局设置可以覆盖 ->markdown 调用?任何其他想法可能有什么问题?

【问题讨论】:

  • 自从你发布这个问题以来,你有没有偶然发现在 Laravel 的任何地方,resources/views/vendor/mail/markdown/* 中的那些降价视图实际上被使用了?我一直试图找到这样的地方,但在我看来这只是一个“死代码”。我想到的唯一用例是将它们用作降价视图中的组件,例如包括它们:@component('vendor.mail.markdown.panel)`,但我不知道你为什么要这样做。
  • 我找到了答案:markdown 视图用于纯文本版本的电子邮件。 github.com/laravel/framework/issues/20791

标签: php laravel-5.4 laravel-mail


【解决方案1】:

我认为您需要在此处关注 laravel 文档:https://laravel.com/docs/5.4/mail#markdown-mailables,您也可以查看 laravel 新闻文章 https://laravel-news.com/laravel-markdown-emails

【讨论】:

  • 阅读它们。他们说在现有的邮件中只使用->markdown,一切都会好起来的。
【解决方案2】:

重新阅读文档:

Markdown 邮件支持 Blade 模板。 Blade支持普通的 html 和刀片语法。

单个组件可以使用 Markdown 编译器来解析部分或全部输入。这就是@component('mail::table') 的工作原理。

更新: Markdown 版本用于生成纯文本邮件。刀片模板用于生成 html 版本。同样,markdown 可以在刀片模板中显式编译,但这是它支持的扩展。

【讨论】:

  • 我同意需要注意的是,在->markdown('my-view') 中,my-view不是原始降价,它是一个可以使用特定组件的刀片文件,并且they 将解析插入其中的 Markdown。
  • “markdown 版本的组件”是指调用 vendor:publish 后 vendor/mail/ 中的“markdown”目录吗?我还发现可发布的供应商目录“markdown”的目的目前是个谜。
猜你喜欢
  • 2017-08-12
  • 2018-10-19
  • 1970-01-01
  • 1970-01-01
  • 2017-08-17
  • 1970-01-01
  • 2018-09-15
  • 2018-02-03
  • 1970-01-01
相关资源
最近更新 更多