我已更新为Laravel 5.6,并且希望使用Mailable类中的新locale method。
我创建了一个可邮寄的类
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'];
那是为什么?
答案 0 :(得分:2)
在Mail Facade中使用语言环境。
$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();
答案 1 :(得分:1)
尝试将语言环境传递给构造函数并进行设置,然后在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');
}