get(); } public static function anonymous() { $user = new User(); $user->id = -1; $user->name = 'Anonymous'; return $user; } public static function currentOrAnonymous() { $user = Auth::user(); return (is_null($user) ? User::anonymous() : $user); } public function albums() { return $this->hasMany(Album::class); } public function feedJsonUrl() { return route('viewUserFeedJson', [ 'idOrAlias' => (!empty($this->profile_alias) ? trim(strtolower($this->profile_alias)) : $this->id) ]); } public function followers() { return $this->belongsToMany(User::class, 'user_followers', 'following_user_id', 'user_id'); } public function following() { return $this->belongsToMany(User::class, 'user_followers', 'user_id', 'following_user_id'); } public function followUrl() { return route('followUser', [ 'idOrAlias' => $this->profileAliasForUrl() ]); } public function groups() { return $this->belongsToMany(Group::class, 'user_groups'); } public function isAnonymous() { return $this->id == -1 && $this->name == 'Anonymous'; } public function profileAliasForUrl() { return (!empty($this->profile_alias) ? trim(strtolower($this->profile_alias)) : $this->id); } public function profileUrl() { return route('viewUser', [ 'idOrAlias' => $this->profileAliasForUrl() ]); } public function publicDisplayName() { return trim(!empty($this->profile_alias) ? $this->profile_alias : $this->name); } /** * Send the password reset notification. * * @param string $token * @return void */ public function sendPasswordResetNotification($token) { $this->notify(new ResetPassword($token)); } public function unFollowUrl() { return route('unFollowUser', [ 'idOrAlias' => $this->profileAliasForUrl() ]); } }