Laravel 11 странный неопределенный ключ массива «имя» при отправке электронной почты

Как следует из названия, я пытаюсь отправить электронное письмо, но продолжает получать эту ошибку.

Контактконтроллер.php

<?php

namespace App\Http\Controllers;

use App\Http\Requests\ContactFormRequest;
use App\Mail\ContactMail;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Mail;

class ContactController extends Controller
{
    /**
     * Display the user's profile form.
     */
    public function contact(ContactFormRequest $request): \Illuminate\Http\RedirectResponse
    {
        $mailData = $request->validated();
        \Log::info(config('mail.to.address'));
        \Log::info($mailData);
        Mail::to(config('mail.to.address'))->send(new ContactMail($mailData)); // error points to here.
        return redirect()->back();
    }
}

КонтактMail.php

class ContactMail extends Mailable
{
    use Queueable, SerializesModels;

    public $mailData = [];

    /**
     * Create a new message instance.
     */
    public function __construct($mailData)
    {
        \Log::info("did construct");
        $this->mailData = $mailData;
    }
}

Журналы

[2024-04-25 02:38:59] local.INFO: [email protected]  
[2024-04-25 02:38:59] local.INFO: array (
  'contact-name' => 'name',
  'contact-name-furigana' => 'ネイム',
  'contact-email' => '[email protected]',
  'contact-phone' => '1234',
  'contact-contents' => 'contents',
  'contact-privacy' => 1,
)  

Ошибка

Undefined array key "name" {"exception":"[object] (ErrorException(code: 0): Undefined array key \"name\" at /var/www/vendor/laravel/framework/src/Illuminate/Mail/MailManager.php:479)

Это даже не доходит до ContactMail класса.

Сначала я думал, что проблема в импорте use Illuminate\Support\Facades\Mail;, но в уроке используется именно этот вариант.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
0
104
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Думаю, я понял.

Я пытался добавить MAIL_TO_ADDRESS = "[email protected]" в .env, а также в app\config\mail.php.

В моем mail.php я добавил только

    'to' => [
        'address' => env('MAIL_TO_ADDRESS', '[email protected]'),
    ],

Я предполагаю, что laravel принимает только «to:address» и «to:name» как пару или вообще ничего. Поэтому я меняю его на

    'to' => [
        'address' => env('MAIL_TO_ADDRESS', '[email protected]'),
        'name' => env('MAIL_TO_NAME', 'Example'),
    ],

Другие вопросы по теме