阅读(455) (9)

Laravel 8 用户首选语言区域设置

2021-07-06 09:24:50 更新

有些情况下,应用程序存储每个用户的首选语言区域设置。通过在可通知模型上实现 HasLocalePreference 契约,可以指示 Laravel 在发送通知时使用用户保存的首选语言设置:

use Illuminate\Contracts\Translation\HasLocalePreference;

class User extends Model implements HasLocalePreference
{
    /**
     * 获取用户的首选语言区域设置
     *
     * @return string
     */
    public function preferredLocale()
    {
        return $this->locale;
    }
} 

实现接口后,Laravel 将在向模型发送通知和邮件时自动使用首选区域设置。因此,使用此接口时不需要调用 locale 方法:

$user->notify(new InvoicePaid($invoice));