我剛剛將laravel的5.2
安裝升級到5.3
,然後按照官方升級方法升級到5.4
。laravel 5.4在郵件中嵌入圖片
我現在正嘗試使用其中一項新功能來創建降價格式電子郵件。
根據文檔中發現的:https://laravel.com/docs/5.4/mail#view-data
To embed an inline image, use the embed method on the
$message
variable within your email template. Laravel automatically makes the$message
variable available to all of your email templates, so you don't need to worry about passing it in manually:
然而,這樣的:
<img src="{{ $message->embed(public_path().'/img/official_logo.png') }}">
將產生以下錯誤:
Undefined variable:
message
我缺少的東西?或者在升級指南中有沒有文檔記錄?
後來編輯:
我打電話的電子郵件功能,具有:
\Mail::to($user)->send(new WelcomeCandidate($user, $request->input('password')));
而且WelcomeCandidate樣子:
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
use App\Models\User;
class WelcomeCandidate extends Mailable
{
use Queueable, SerializesModels;
public $user;
public $password;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct(User $user, $password)
{
//
$this->user = $user;
$this->password = $password;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
$this->subject('Welcome!');
return $this->markdown('emails.welcome-candidate');
}
}
表現出一些更多的代碼,但什麼錯誤是說是相當清楚的。您沒有在您的郵寄類或通知類中定義郵件變量,也沒有在郵件/通知的構造函數中爲其分配任何值。另外,如果你要使用降價,你不需要圖像標籤。 – Christophvh
我按照說明操作,如引用文本中所示。我應該提供哪些代碼? –
你在哪裏執行你的mailable類的代碼:例如: '$ message =「hello」; Mail :: to($ request-> user()) - > send(new OrderShipped($ message));' – Christophvh