如何解决“没有为 [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/pathsresource_path('views/vendor/mail') 更改为 resource_path('views/vendor/mail/markdown'),因此它找到了我的基本模板Markdown 邮件。

【讨论】:

以上是关于如何解决“没有为 [mail] 定义提示路径”。 (自定义电子邮件布局)在 laravel 上?的主要内容,如果未能解决你的问题,请参考以下文章

如何解决 Ajax 跨域请求不到的问题

如何解决包冲突问题

如何解决包冲突问题

如何解决ajax跨域问题

MySQL 的 10048问题,如何解决?

如何解决smartgit的冲突问题