为我的电子邮件模板使用默认 Laravel 电子邮件布局
Use default Laravel email layout for my email templates
我有一个 Laravel 这样的可邮寄:
...
public function build()
{
return $this->subject('Ticket Created ['.$this->ticket->ticket_code.']')
->view('emails.support.ticketcreated')->with([
'ticket' => $this->ticket
]);
}
然后我的视图目录中有一个电子邮件模板:
<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 个电子邮件模板,使用的是:
php artisan vendor:publish --tag=laravel-mail
我可以在下面看到我想使用的布局文件:
resources/views/vendor/mail/html/layout.blade.php
问题是我似乎无法使用此布局。
我尝试了以下方法(但都失败了):
包装电子邮件模板,但它只是尝试使用我的应用程序布局(而不是邮件布局)。
使用@extends('vendor.mail.html.layout')
和@section('slot')
尝试添加 ->layout('vendor.mail.html.layout');到 mailable build()
中 view() 的末尾(只给出错误方法未找到)
如何为我的电子邮件使用此布局。请注意,我不想创建单独的重复布局,因为那样我将有两个布局需要管理。
Laravel中的默认电子邮件模板布局这是的官方link:Writing Markdown Messages
这是我的邮件控制器
<?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,
]);
}
}
这是我执行电子邮件的另一个控制器
$getUserData = User::where('id',$userId)->first();
Mail::to($getUserData)->send(new NewUserRegistration($getUserData));
我有一个 Laravel 这样的可邮寄:
...
public function build()
{
return $this->subject('Ticket Created ['.$this->ticket->ticket_code.']')
->view('emails.support.ticketcreated')->with([
'ticket' => $this->ticket
]);
}
然后我的视图目录中有一个电子邮件模板:
<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 个电子邮件模板,使用的是:
php artisan vendor:publish --tag=laravel-mail
我可以在下面看到我想使用的布局文件:
resources/views/vendor/mail/html/layout.blade.php
问题是我似乎无法使用此布局。
我尝试了以下方法(但都失败了):
包装电子邮件模板,但它只是尝试使用我的应用程序布局(而不是邮件布局)。
使用
@extends('vendor.mail.html.layout')
和@section('slot')
尝试添加 ->layout('vendor.mail.html.layout');到 mailable
build()
中 view() 的末尾(只给出错误方法未找到)
如何为我的电子邮件使用此布局。请注意,我不想创建单独的重复布局,因为那样我将有两个布局需要管理。
Laravel中的默认电子邮件模板布局这是的官方link:Writing Markdown Messages
这是我的邮件控制器
<?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,
]);
}
}
这是我执行电子邮件的另一个控制器
$getUserData = User::where('id',$userId)->first();
Mail::to($getUserData)->send(new NewUserRegistration($getUserData));