Пример #1
0
 public function searchIndProfile()
 {
     if (Auth::check()) {
         $title = 'Profilesearch';
         $city = Input::get('city');
         $role = Input::get('role');
         $min_exp = Input::get('min_exp');
         $max_exp = Input::get('max_exp');
         $prefered_jobtype = Input::get('job_type');
         $resume = Input::get('resume');
         $skill = Input::get('linked_skill_id');
         $type = Input::get('type');
         $skills = Skills::lists('name', 'name');
         $users = Induser::orderBy('id', 'desc')->with('user');
         $corpsearchprofile = Corpsearchprofile::where('user_id', '=', Auth::user()->id)->where('save_contact', '=', 1)->get(['profile_id']);
         if ($skill != null) {
             foreach ($skill as $skil) {
                 $users->where('linked_skill', 'like', '%' . $skil . '%');
             }
         }
         if ($city != null) {
             $users->where('prefered_location', 'like', '%' . $city . '%');
         }
         if ($min_exp != null) {
             $users->whereRaw("experience between {$min_exp} and {$max_exp}");
         }
         if ($role != null) {
             $users->whereRaw("(linked_skill like '%" . $role . "%' or role like '%" . $role . "%')");
         }
         if ($prefered_jobtype != null) {
             foreach ($prefered_jobtype as $pj) {
                 $users->where('prefered_jobtype', 'like', '%' . $pj . '%');
             }
         }
         // if($prefered_jobtype != null){
         // 		$users->whereIn('prefered_jobtype', $prefered_jobtype);
         // }
         if ($resume != null) {
             $users->whereNotNull('resume');
         }
         $perProfile = "";
         $searchSkill = "";
         if ($skill == null) {
             $perProfile = '100';
         } elseif ($skill != null) {
             $skillUser = Induser::first(['linked_skill']);
             $userSkills = array_map('trim', explode(',', $skillUser->linked_skill));
             // unset ($userSkills[count($userSkills)-1]);
             $searchSkill = implode(',', Input::get('linked_skill_id'));
             $searchSkill = array_map('trim', explode(',', $searchSkill));
             // unset ($searchSkill[count($searchSkill)-1]);
             $overlap = array_intersect($userSkills, $searchSkill);
             $counts = array_count_values($overlap);
             if (count($counts) > 0) {
                 $perProfile = round(count($counts) / count($userSkills) * 100);
             } else {
                 $perProfile = 0;
             }
         }
         $users = $users->paginate(5);
         // return $searchSkill;
         return view('pages.corpsearchProfile', compact('users', 'title', 'type', 'corpsearchprofile', 'perProfile', 'skills', 'city', 'role', 'min_exp', 'max_exp', 'skill', 'resume', 'prefered_jobtype'));
     }
 }