Изменение поля «Тема» по умолчанию для проверочных писем в Laravel 5.7

Я пытаюсь изменить поле subject по умолчанию в электронном письме с подтверждением, которое поставляется с Laravel 5.7. Как и где его поменять? Я искал повсюду и в Интернете. Потому что это новенькое, я не могу найти ответа.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
7
0
8 267
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Это черта MustVerifyEmail.

<?php

namespace Illuminate\Auth;

trait MustVerifyEmail
{
    /**
     * Determine if the user has verified their email address.
     *
     * @return bool
     */
    public function hasVerifiedEmail()
    {
        return ! is_null($this->email_verified_at);
    }

    /**
     * Mark the given user's email as verified.
     *
     * @return bool
     */
    public function markEmailAsVerified()
    {
        return $this->forceFill([
            'email_verified_at' => $this->freshTimestamp(),
        ])->save();
    }

    /**
     * Send the email verification notification.
     *
     * @return void
     */
    public function sendEmailVerificationNotification()
    {
        $this->notify(new Notifications\VerifyEmail);
    }
}

Как видите, отправляется уведомление с именем VerifyEmail, поэтому я думаю, что переопределения этого метода в пользовательской модели с вашим собственным уведомлением будет достаточно. Вам также следует проверить этот файл: vendor/laravel/framework/src/Illuminate/Auth/Notifications/VerifyEmail.php, поскольку он содержит уведомление и может использоваться в качестве примера вашего настраиваемого уведомления о проверке.

В User.php

    public function sendEmailVerificationNotification()
    {
        $this->notify(new MyNotification);
    }

Тогда беги

php artisan make:notification MyNotification

И в своем уведомлении вы можете просто расширить до Illuminate\Auth\Notifications\VerifyEmail

Затем вы можете переопределить функцию уведомления для почты ... Еще не пробовали, но это должно сработать.

Всегда рада помочь!

Erubiel 19.09.2018 17:06

Спасибо друг. Я приехал сюда через Google, и это был мой ответ.

Ruub 14.10.2018 14:33

@Ruub, другой ответ тоже хорош, но этот хорош, если вам нужно что-то, чего нет в уведомлении по умолчанию, предоставляемом laravel.

Erubiel 14.10.2018 14:42

Вау, спасибо. Это точный и правильный способ настройки.

Namal 30.01.2019 01:57

Можете ли вы разместить свою функцию по почте? Я использую:

\Mail::to($user)->subject('Your Subject')->bcc([$reports,$me])->send(new Declined($user));

А именно: отправить письмо пользователю $, установить тему, скрыть копию, затем отправить письмо, передавая пользователя. Это также для почты с уценкой. Вы используете оператор ->, чтобы добавить все дополнительные функции для почты, поэтому с его помощью вы можете добавить BCC (как я сделал), а также CC и т. д.

Нет, в laravel 5.7 встроено письмо с подтверждением ... оно отправляется «за кулисами»

Erubiel 19.09.2018 16:50

Вопрос не в этом, хе-хе, он больше связан с этим: laravel.com/docs/5.7/verification

Erubiel 19.09.2018 17:03

Я понимаю! Не беспокойтесь, удачи, ребята :-)

party-ring 19.09.2018 17:04
Ответ принят как подходящий

Вам не нужно ничего кодировать. В уведомлении есть все строки, обернутые в класс Lang, так что вы можете предоставить строки перевода с английского на другой язык или даже с английского на английский, если вы просто хотите изменить формулировку.

Посмотрите в /vendor/laravel/framework/src/Illuminate/Auth/Notifications/VerifyEmail.php

public function toMail($notifiable)
{
    if (static::$toMailCallback) {
        return call_user_func(static::$toMailCallback, $notifiable);
    }

    return (new MailMessage)
        ->subject(Lang::getFromJson('Verify Email Address'))
        ->line(Lang::getFromJson('Please click the button below to verify your email address.'))
        ->action(
            Lang::getFromJson('Verify Email Address'),
            $this->verificationUrl($notifiable)
        )
        ->line(Lang::getFromJson('If you did not create an account, no further action is required.'));
}

Вы можете увидеть там все струны.

Создайте файл en.json, если у вас его еще нет в папке resources / lang.

добавить исходную строку и замену. например

{
    "Verify Email Address": "My preferred subject",
    "Please click the button below to verify your email address.":"Another translation"
}

Чтобы перевести на другой язык, измените локаль в config / app.php и создайте файл перевода с locale.json.

Это решение, которое я использовал. Спасибо.

GabMic 01.10.2018 22:04

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