首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用默认的Laravel电子邮件布局作为我的电子邮件模板

使用默认的Laravel电子邮件布局作为我的电子邮件模板
EN

Stack Overflow用户
提问于 2021-01-07 20:29:02
回答 2查看 2.7K关注 0票数 1

我有一个这样的Laravel邮件:

代码语言:javascript
复制
...
public function build()
{

    return $this->subject('Ticket Created ['.$this->ticket->ticket_code.']')
        ->view('emails.support.ticketcreated')->with([
            'ticket' => $this->ticket
        ]);
}

然后,我在视图目录中有了电子邮件的模板:

代码语言:javascript
复制
<div class="card">
    <div class="card-header bg-dark">
        Ticket Created [{{ $ticket->ticket_code }}]
    </div>
    <div class="card-body">
        <p>Thanks for creating a ticket!  We will get back to you as soon as possible</p>
        <p><a href="{{ $ticket->url }}">To view your ticket click here</a></p>
    </div>
</div>

我想将其包装在默认的Laravel电子邮件模板中(因此,将以上所有内容放入布局中的$slot部分)

我使用以下方法发布了Laravel电子邮件模板:

代码语言:javascript
复制
php artisan vendor:publish --tag=laravel-mail

我可以看到我想在下面使用的布局文件:

代码语言:javascript
复制
resources/views/vendor/mail/html/layout.blade.php

问题是我似乎不能使用这个布局。

我尝试了以下方法(但都失败了):

  1. 包装电子邮件模板,但它只是尝试使用我的应用程序布局(而不是邮件布局)。
  2. 使用@extends('vendor.mail.html.layout')@section('slot')
  3. 尝试将->layout('vendor.mail.html.layout');添加到mailable build()中视图()的末尾(只是给出了未找到的错误方法)

我怎样才能在我的电子邮件中使用这个布局。请注意,我不想创建一个单独的重复布局,因为我将有两个布局要管理。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-01-08 06:48:54

默认电子邮件模板布局在Laravel这里是编写标记消息的官方链接

这是我的邮件控制器

代码语言:javascript
复制
<?php

namespace App\Mail;

use App\Models\User;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;

class NewUserRegistration extends Mailable
{
    use Queueable, SerializesModels;
    protected $user;

    /**
     * Create a new message instance.
     *
     * @param $user
     */
    public function __construct(User $user)
    {
        $this->user = $user;
    }

    /**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {
        return $this->to($this->user->email,$this->user->first_name.' '.$this->user->last_name)
                    ->cc('ccemail@ccemail.com','CC USER NAME')
                    ->from(env('MAIL_FROM_ADDRESS'),env('MAIL_FROM_NAME'))
                    ->subject('subject_of_your_email')
                    ->markdown('emails.registration',[  // This is very important line
                        'first_name'    => $this->user->first_name,
                        'last_name'     => $this->user->last_name,
                    ]);
    }
}

这是我正在执行电子邮件的另一个控制器。

代码语言:javascript
复制
$getUserData = User::where('id',$userId)->first();
Mail::to($getUserData)->send(new NewUserRegistration($getUserData));
票数 1
EN

Stack Overflow用户

发布于 2022-11-16 20:02:12

同样的问题开始了Laravel5.6低谷7到9。我不知道文档是否不清楚或什么,但我从来没有想过正确地使用他们的模板,并最终从零开始设置新的。这是6耳后,我撞到了同一堵墙。对不起,没办法,我想有人会在这里提交一份有效的指南。干杯。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65619477

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档