Как вы настраиваете переменные в электронных письмах Laravel по умолчанию?

Я выполнил этот ответ, чтобы опубликовать шаблоны электронной почты по умолчанию в своем приложении с помощью:

php artisan vendor:publish --tag=laravel-notifications
php artisan vendor:publish --tag=laravel-mail

Это прекрасно работает, но явно есть некоторые параметры конфигурации, такие как:

{{-- Greeting --}}
@if (! empty($greeting))
# {{ $greeting }}
@else
@if ($level === 'error')
# @lang('Whoops!')
@else
# @lang('Hello!')
@endif
@endif

{{-- Salutation --}}
@if (! empty($salutation))
{{ $salutation }}
@else
@lang('Regards'),<br>{{ config('app.name') }}
@endif

Прямо сейчас мои электронные письма посылают "Привет!" и «С уважением» из другого раздела, но, очевидно, есть способ установить эти значения по умолчанию для шаблонов электронной почты с помощью переменных. Как установить переменные $greeting и $salutation при отправке писем?


person Connor Leech    schedule 13.12.2018    source источник
comment
Я пытаюсь найти, где хранится определение для @lang('Regards'). В настоящее время он не отображается в моей кодовой базе. Может быть полезно, если кто-нибудь может добавить эту информацию в качестве комментария или дополнительного ответа здесь. Я нашел этот вопрос в Google @lang('Regards') с двойными кавычками вокруг него. Я хотел бы добавить что-то вроде @lang('Team') рядом с определением С уважением.   -  person agm1984    schedule 17.03.2019
comment
Но стоит отметить, что resources/lang — это папка, и человек может добавлять туда любые настройки. Я просто еще не достаточно узнал об этом, чтобы сказать, как это сделать.   -  person agm1984    schedule 17.03.2019


Ответы (1)


Размещенный вами шаблон является шаблоном по умолчанию для почтовых уведомлений. При создании такого уведомления, например:

php artisan make:notification InvoicePaid --markdown=mail.invoice.paid

Новый класс InvoicePaid создается в app/Notifications/InvoicePaid.php. Этот класс содержит метод toMail() со следующим содержимым:

return (new MailMessage)->markdown('mail.invoice.paid');

Класс MailMessage расширяет класс SimpleMessage. Класс SimpleMessage имеет методы greeting() и salutation(), которые можно использовать для установки приветствия или приветствия.

Например:

/**
 * Get the mail representation of the notification.
 *
 * @param  mixed  $notifiable
 * @return \Illuminate\Notifications\Messages\MailMessage
 */
public function toMail($notifiable)
{
    return (new MailMessage)
           ->greeting("Your custom greeting")
           ->salutation("Your salutation goes here")
           ->markdown('mail.invoice.paid');
}
person Chris    schedule 13.12.2018
comment
Хорошо очень полезно! Я хочу перезаписать шаблон sendEmailVerificationNotification. Поэтому я предполагаю, что мне следует перезаписать этот метод в app/User.php и создать новый почтовый ящик с этим флагом уценки. Возможно скопирую часть функционала из Illuminate\Auth\Notifications\VerifyEmail - person Connor Leech; 14.12.2018
comment
Да, просто перезапишите метод sendEmailVerificationNotification в вашей модели пользователя, и все будет хорошо. - person Chris; 14.12.2018