Laravel更新当前登录用户';s模型


Laravel update currently logged in user's model

我目前有:

    $lang = Session::get('applocale');
    if ($lang) {
        User::where('id', Auth::user()->id)->update(['language' => $lang]);
    }

通过Auth有更好的方法吗?也许是Auth::user()->language=$lang之类的东西?


public function switchLang($lang)
{
    if (array_key_exists($lang, Config::get('languages'))) {
        Session::set('applocale', $lang);
        if(Auth::check()) {
            auth()->user()->update(['language' => $lang]);
        }
    }
    return Redirect::back();
}

languages.php(配置)

return [
    'en' => 'English',
    'cn' => '中文',
];

代替:

User::where('id', Auth::user()->id)->update(['language' => $lang]);

你可以使用:

auth()->user()->update(['language' => $lang]);

然而,在这两种情况下(您的代码和我的代码),您应该确保用户已被记录,否则您可能会在这里得到异常