如何更改 Laravel Mailable 模板中的页眉徽标?
How to change Header Logo in Laravel Mailable template?
我想将 logo
从 mailables
的 markdown template
的 header
更改为 Laravel。
原版views/vendor/mail/html/header.blade.php
:
<tr>
<td class="header">
<a href="{{ $url }}" style="display: inline-block;">
@if (trim($slot) === 'Laravel')
<img src="https://laravel.com/img/notification-logo.png" class="logo" alt="Laravel Logo">
@else
{{ $slot }}
@endif
</a>
</td>
</tr>
我想将 img src
更改为:
<img src={{ $content }} class="logo" alt="Logo">
变量 $content
来自可邮寄 ContactMail.php
:
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\DB;
use phpDocumentor\Reflection\DocBlock\Tags\Var_;
class ContactMail extends Mailable implements ShouldQueue
{
use Queueable, SerializesModels;
public function __construct()
{
$this->content = "storage/hg5zkMDJTAWaIjc8hH5jqtb5FGmOXfpccha2k0A4.png";
return $this->markdown('emails.contact');
}
public function build()
{
return view('vendor.mail.html.header')->with('content', $this->content);
}
}
但最终抛出:
ErrorException
Undefined variable $content (View: C:\Users\Artur\PhpstormProjects\stuttard.de\resources\views\vendor\mail\html\header.blade.php)
$content is undefined
如何将 $content
正确传递给 header.blade.php
?
编辑:
ContactController.php
:
<?php
namespace App\Http\Controllers;
use App\Mail\ContactMail;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Mail;
class ContactController extends Controller
{
public function test()
{
return new ContactMail();
}
}
你传递的是变量数据而不是内容
将您的代码更改为
<img src={{ $data }} class="logo" alt="Logo">
添加了更多答案
试试这个你需要先定义 $content 变量
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\DB;
use phpDocumentor\Reflection\DocBlock\Tags\Var_;
class ContactMail extends Mailable implements ShouldQueue
{
use Queueable, SerializesModels;
public $content;
public function __construct()
{
$this->content = "storage/hg5zkMDJTAWaIjc8hH5jqtb5FGmOXfpccha2k0A4.png";
return $this->markdown('emails.contact');
}
public function build()
{
return view('vendor.mail.html.header')->with('content', $this->content);
}
}
我想 运行:
php artisan vendor:publish --tag=laravel-mail
一组新的可自定义 blade files
创建于:
/resources/views/vendor/mail/html
这些是可邮寄模板的构建块,可以进行编辑。
我想将 logo
从 mailables
的 markdown template
的 header
更改为 Laravel。
原版views/vendor/mail/html/header.blade.php
:
<tr>
<td class="header">
<a href="{{ $url }}" style="display: inline-block;">
@if (trim($slot) === 'Laravel')
<img src="https://laravel.com/img/notification-logo.png" class="logo" alt="Laravel Logo">
@else
{{ $slot }}
@endif
</a>
</td>
</tr>
我想将 img src
更改为:
<img src={{ $content }} class="logo" alt="Logo">
变量 $content
来自可邮寄 ContactMail.php
:
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\DB;
use phpDocumentor\Reflection\DocBlock\Tags\Var_;
class ContactMail extends Mailable implements ShouldQueue
{
use Queueable, SerializesModels;
public function __construct()
{
$this->content = "storage/hg5zkMDJTAWaIjc8hH5jqtb5FGmOXfpccha2k0A4.png";
return $this->markdown('emails.contact');
}
public function build()
{
return view('vendor.mail.html.header')->with('content', $this->content);
}
}
但最终抛出:
ErrorException
Undefined variable $content (View: C:\Users\Artur\PhpstormProjects\stuttard.de\resources\views\vendor\mail\html\header.blade.php)
$content is undefined
如何将 $content
正确传递给 header.blade.php
?
编辑:
ContactController.php
:
<?php
namespace App\Http\Controllers;
use App\Mail\ContactMail;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Mail;
class ContactController extends Controller
{
public function test()
{
return new ContactMail();
}
}
你传递的是变量数据而不是内容 将您的代码更改为
<img src={{ $data }} class="logo" alt="Logo">
添加了更多答案
试试这个你需要先定义 $content 变量
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\DB;
use phpDocumentor\Reflection\DocBlock\Tags\Var_;
class ContactMail extends Mailable implements ShouldQueue
{
use Queueable, SerializesModels;
public $content;
public function __construct()
{
$this->content = "storage/hg5zkMDJTAWaIjc8hH5jqtb5FGmOXfpccha2k0A4.png";
return $this->markdown('emails.contact');
}
public function build()
{
return view('vendor.mail.html.header')->with('content', $this->content);
}
}
我想 运行:
php artisan vendor:publish --tag=laravel-mail
一组新的可自定义 blade files
创建于:
/resources/views/vendor/mail/html
这些是可邮寄模板的构建块,可以进行编辑。