РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
832 of 1392 menu

Метод locale

Метод locale класса Mailable позволяет задать локаль для отправляемого письма. Первым параметром передаётся строка с кодом локали, например, 'ru' или 'en'. Если локаль не указана, используется локаль по умолчанию, установленная в приложении. Метод возвращает текущий экземпляр письма, что позволяет использовать цепочки вызовов.

Синтаксис

<?php $mailable->locale($locale); ?>

Пример

Давайте создадим класс письма и установим локаль 'ru':

<?php namespace AppMail; use IlluminateBusQueueable; use IlluminateMailMailable; use IlluminateMailMailablesContent; use IlluminateMailMailablesEnvelope; use IlluminateQueueSerializesModels; class WelcomeMail extends Mailable { use Queueable, SerializesModels; public function __construct() { // } public function envelope(): Envelope { return new Envelope( subject: 'Welcome to our site', ); } public function content(): Content { return new Content( view: 'emails.welcome', ); } public function attachments(): array { return []; } } ?>

Пример

Отправим письмо с установкой локали через метод locale:

<?php namespace AppHttpControllers; use AppMailWelcomeMail; use IlluminateSupportFacadesMail; class MailController extends Controller { public function sendWelcome() { $mail = new WelcomeMail(); $mail->locale('ru'); Mail::to('user@example.com')->send($mail); echo "Mail sent successfully"; } } ?>

Результат выполнения кода:

"Mail sent successfully"

Пример

Используем цепочку вызовов для установки локали и отправки письма:

<?php namespace AppHttpControllers; use AppMailWelcomeMail; use IlluminateSupportFacadesMail; class MailController extends Controller { public function sendWelcome() { Mail::to('user@example.com') ->send(new WelcomeMail()->locale('en')); echo "Mail sent with English locale"; } } ?>

Результат выполнения кода:

"Mail sent with English locale"

Пример

Отправим письмо с локалью, зависящей от предпочтений пользователя:

<?php namespace AppHttpControllers; use AppMailWelcomeMail; use AppModelsUser; use IlluminateSupportFacadesMail; class MailController extends Controller { public function sendWelcome($userId) { $user = User::find($userId); if ($user) { $locale = $user->preferred_locale ?? 'en'; Mail::to($user->email) ->send(new WelcomeMail()->locale($locale)); echo "Mail sent with locale: " . $locale; } else { echo "User not found"; } } } ?>

Результат выполнения кода для пользователя с локалью 'ru':

"Mail sent with locale: ru"

Смотрите также

  • класс Mailable,
    который представляет собой базовый класс для всех писем
  • метод with,
    который передаёт данные в представление письма
  • метод envelope,
    который определяет заголовки письма
  • метод content,
    который определяет содержимое письма
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить