/** * @param $id */ public function allUserData($id, $mode = 'show') { if (!($user = User::find($id))) { abort(404); } $name = $user->full_name; if (!($fullProfile = Profile::where('user_id', '=', $id)->first())) { $fullProfile = new Profile(); } $cityLiving = $this->placeLiving($fullProfile->place_living_id); $cityFrom = $this->placeFrom($fullProfile->place_from_id); $languages_high = Language::where('profile_id', '=', $fullProfile->id)->where('level', '=', 'advanced')->get(); $languages_med = Language::where('profile_id', '=', $fullProfile->id)->where('level', '=', 'intermediate')->get(); $languages_low = Language::where('profile_id', '=', $fullProfile->id)->where('level', '=', 'basic')->get(); //Avatar is optional if ($user->avatar) { $avatar = $user->avatar; } if ($mode == 'show' || $mode == 'references') { $references = Reference::where('profile_user_id', '=', $id)->with(['user'])->orderBy('updated_at', 'DES')->get(); $age = $user->age; $owner = \Auth::id() == $id; $gender = $user->gender; $places = $user->placesWanted; $placesVisited = $user->placesVisited; $avg = Reference::where('profile_user_id', '=', $id)->avg('grade'); $ref = false; $fav = boolval(Favorites::where('owner_id', \Auth::id())->where('user_id', $id)->first()); if ($mode == 'references') { $ref = true; } return compact('fullProfile', 'references', 'name', 'avatar', 'ref', 'avg', 'cityFrom', 'cityLiving', 'age', 'gender', 'id', 'owner', 'fav', 'languages_high', 'languages_med', 'languages_low', 'places', 'placesVisited'); } else { if ($mode == 'edit') { return compact('fullProfile', 'cityFrom', 'cityLiving', 'name', 'avatar', 'id', 'languages_high', 'languages_med', 'languages_low'); } else { return abort(404); } } }