如何解决“没有为 [mail] 定义提示路径”。 (自定义电子邮件布局)在 laravel 上?
Posted
技术标签:
【中文标题】如何解决“没有为 [mail] 定义提示路径”。 (自定义电子邮件布局)在 laravel 上?【英文标题】:How can I solve "No hint path defined for [mail]." (customize email layout) on laravel? 【发布时间】:2018-02-12 09:59:47 【问题描述】:从这里:Laravel 5.4 - How to customize notification email layout?
我尝试自定义通知电子邮件布局
我这样发送电子邮件的代码:
public function toMail($notifiable)
return (new MailMessage)
->subject('Test')
->view('vendor.mail.markdown.message',['data'=>$this->data]);
这样的观点:
@component('mail::layout')
-- Header --
@slot('header')
@component('mail::header', ['url' => config('app.url')])
config('app.name')
@endcomponent
@endslot
-- Body --
$slot test
-- Subcopy --
@isset($subcopy)
@slot('subcopy')
@component('mail::subcopy')
$subcopy
@endcomponent
@endslot
@endisset
-- Footer --
@slot('footer')
@component('mail::footer')
© date('Y') config('app.name') . All rights reserved.
@endcomponent
@endslot
@endcomponent
如果代码被执行,就会出现这样的错误:
(2/2) ErrorException 没有为 [mail] 定义提示路径。 (看法: C:\xampp\htdocs\myshop\resources\views\vendor\mail\markdown\message.blade.php)
我该如何解决这个错误?
【问题讨论】:
尝试使用此命令将邮件目录从包发布到您的视图 php artisan vendor:publish --tag=laravel-mail @umefarooq,我已经做到了。但都是一样的 【参考方案1】:如果您在模板中使用 markdown,则需要在 MailMessage
上使用 ->markdown()
方法而不是 ->view()
方法
public function toMail($notifiable)
return (new MailMessage)
->subject('Test')
->markdown('vendor.mail.markdown.message', ['data' => $this->data]);
【讨论】:
和 OP 一样的问题,我没有使用 markdown 但这解决了问题。 如果不想使用预发货降价,那么解决方案是什么【参考方案2】:在通过不同 Laravel 版本(现在是 5.6)迁移的应用程序中,我不得不修改文件 config/mail.php
,将参数 markdown/paths
从 resource_path('views/vendor/mail')
更改为 resource_path('views/vendor/mail/markdown')
,因此它找到了我的基本模板Markdown 邮件。
【讨论】:
以上是关于如何解决“没有为 [mail] 定义提示路径”。 (自定义电子邮件布局)在 laravel 上?的主要内容,如果未能解决你的问题,请参考以下文章