【问题标题】:Is it possible to add multiple Markdown templates in Laravel是否可以在 Laravel 中添加多个 Markdown 模板
【发布时间】:2020-02-10 16:27:25
【问题描述】:

我正在构建一个 Laravel 应用程序,并且我正在使用 Markdown 发送邮件。我有发给用户的邮件和发给管理员的邮件。

阅读文档我可以用不同的 css 制作一个新的“主题”,但我希望布局完全不同。

我现在的供应商文件夹:

vendor > mail > html/text

我的目标

vendor > mail1 > html/text
vendor > mail2 > html/text

我的配置/邮件

'markdown' => [
        'theme' => 'default',

        'paths' => [
            resource_path('/views/vendor/mail'),
        ],
    ],

我如何做到这一点?

【问题讨论】:

  • 您的具体问题是什么?不能使用那个paths 数组吗?此外,请检查正确的标记。对我来说,这看起来与 Markdown(生成 HTML 标记的格式化语法)本身无关

标签: php laravel templates


【解决方案1】:

Laravel 邮件系统是基于组件的。

默认邮件结构使用@component('mail::message'),它使用@component('mail::layout')——你可以新建一个并引用它们。

配置文件唯一要做的就是告诉 Laravel 通过匹配主题名称来注入哪个 CSS。它告诉 Laravel 在哪里寻找“mail::”组件。

如果你想发送一个完全不同的布局,那么你需要做的就是告诉你的邮件程序使用你不同的布局组件。

因此,您可以将message.blade.php 复制到admin-message.blade.php 并将layout.blade.php 复制到admin-layout.blade.php,并在您的管理员邮件中使用@component('mail::admin-message')

【讨论】:

  • 谢谢!这是我的问题的解决方案,尽管我一直在寻找一种干净的方法将它们完全分开在文件夹中,因此并非所有文件都会加倍。
  • 如果你愿意,你绝对可以使用文件夹结构。我相信点符号在这里可以工作(我没有这样做) - 即:mail::admin.message 会在 views/vendor/mail/markdown/admin/ 或类似的东西中查找。
猜你喜欢
  • 2021-09-24
  • 2014-04-10
  • 2016-09-17
  • 2011-05-22
  • 2017-05-27
  • 2023-03-21
  • 2019-09-16
  • 2016-08-12
相关资源
最近更新 更多