<?php namespace App; use Auth; use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; class User extends Authenticatable implements MustVerifyEmail { use Notifiable; /** * The attributes that are mass assignable. * * @var array */ protected $fillable = [ 'name', 'email', 'password', ]; /** * The attributes that should be hidden for arrays. * * @var array */ protected $hidden = [ 'password', 'remember_token', ]; public function products() { return $this->hasMany(Product::class); } public function items() { return $this->belongsToMany(Item::class); } /** * Return the logged in user * * @return \App\User */ public static function loggedIn() { return (new static)->findOrFail(Auth::id()); } /** * Set the default website language * for the acual user * * @param string $language The language code * * @return void */ public static function setLanguage(string $language) { if (Auth::check()) { $user = self::loggedIn(); $user->language = $language; $user->save(); } } }