Laravel: невозможно установить локаль в Mailable - PullRequest
0 голосов
/ 03 июля 2018

Я обновился до Laravel 5.6 и хочу использовать новый метод локали из класса Mailable.

Я создал почтовый класс с

php artisan make:mail Test --markdown="emails.test"

Это мой блейд-файл:

@component('mail::message')
@lang('list.test')
@endcomponent

Если я отправлю письмо

  $test = new \App\Mail\Test();
  $test->locale('de');
  \Mail::to('myemail@test.com')->send($test);

Тогда почта не использует мой файл локали из resources/lang/de/list.php

<?php 

   return [ 'test' => 'Dies ist ein Test'];

Почему это?

Ответы [ 2 ]

0 голосов
/ 03 июля 2018

Попробуйте передать языковой стандарт конструктору и установить, а затем установить его в функции build:

public $locale;

public function __construct(string $locale = 'de')
{
    $this->locale = $locale;
}

public function build()
{
    return $this->locale($this->locale)
                ->from('example@example.com')
                ->view('emails.example');
}
0 голосов
/ 03 июля 2018

Использование локали с Фасадом Почты.

$test = new \App\Mail\Test();
\Mail::to('myemail@test.com')->locale('de')->send($test);

Mail Facade и Mailable относится к разным классам. для использования locale() с Mailable попробуйте это.

 $test = new \App\Mail\Test();
 $test->locale('de')->send();
...