Смещение при нулевом значении для Mailtrap на Laravel 7
Я использую Laravel 7 и PHP 7.4.
Я использую Mailtrap для тестовых писем. Я только что обновил свою версию Laravel до 7.4, и моя электронная почта перестала работать. Когда я пытаюсь отправить демо-письмо, я получаю сообщение об ошибке ниже
Trying to access array offset on value of type null
Проблема здесь:
{{ $mailData['title'] }}
Контроллер:
class MailController extends Controller {
public function sendEmail() {
$email = 'positronx@gmail.com';
$mailData = [
'title' => 'Demo Email',
'url' => 'https://www.positronx.io'
];
Mail::to($email)->send(new EmailDemo($mailData));
return response()->json([
'message' => 'Email has been sent.'
], Response::HTTP_OK);
}
}
MailFile:
class EmailDemo extends Mailable
{
use Queueable, SerializesModels;
public $mailData;
public function __construct()
{ }
public function build()
{
return $this->markdown('email.demoEmail')
->with('mailData', $this->mailData);
}
}
Лезвие:
@component('mail::message')
{{ $mailData['title'] }}
The body of your message.
@component('mail::button', ['url' => $mailData['url']])
Button Text
@endcomponent
Thanks,<br>
{{ config('app.name') }}
@endcomponent
2 ответа
Решение
Вы забываете установить $mailData в constructor()
, передайте его конструктору и установите для него $this->maildata
.
class EmailDemo extends Mailable
{
use Queueable, SerializesModels;
public $mailData;
public function __construct($mailData)
{
$this->mailData = $mailData;
}
}
Вы не инициализировали $mailData
в классе почтовых уведомлений. вы можете сделать это, как показано ниже:
class EmailDemo extends Mailable
{
//your other code
public $mailData;
public function __construct($mailData)
{
$this->mailData = $mailData;
}
}
Надеюсь, теперь он будет работать.