Изменение поля «Тема» по умолчанию для проверочных писем в Laravel 5.7 - PullRequest
0 голосов
/ 19 сентября 2018

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

Ответы [ 3 ]

0 голосов
/ 19 сентября 2018

Можете ли вы опубликовать свою функцию там, где вы пишете?Я использую:

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

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

0 голосов
/ 20 сентября 2018

Вам не нужно ничего кодировать.Уведомление содержит все строки, заключенные в класс 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

0 голосов
/ 19 сентября 2018

Это черта 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

Тогда выможет переопределить функцию уведомления toMail ... Не попробовал, но это должно сработать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...