我有警报系统,可以向用户发送电子邮件。如何根据用户偏好以语言发送电子邮件。
在用户表中,我有一列language
。它存储用户选择的语言(' en',' de'等...)
我使用以下方式发送电子邮件:
public function handle(){
...
Mail::send('emails.newSearchAlert', ['u' => $u, 'results' => $results],
function ($m) use ($u) {
$m->from('noreply@mydomain.tv', 'My company');
}
$m->to($u->email)->subject('Your search alert - ' . $u->search);
});
在newSearchAlert
我这样做:
@if(App::isLocale('de'))
<h3>Ihr Alert</h3>
@elseif(App::isLocale('en'))
<h3>Your campaign alert: </h3>
但它不起作用。我总是收到德语电子邮件。如何使用表格中的language
列。
PS 我用这个包进行本地化: https://github.com/mcamara/laravel-localization
答案 0 :(得分:1)
您必须在使用
发送电子邮件之前设置您的语言环境App::setLocale($language);
其中$language
是您从数据库加载的语言
我认为在你的情况下会是
App::setLocale($u->language);