/** * Filters departments by criteria * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function filter(Request $request) { $departments = null; $user = Session::get('user'); $match_departments = Session::get('match_departments'); // Get all inputs from request $btnFindDepartment = $request->input('btnFindDepartment'); $btnFindAll = $request->input('btnFindAll'); $departmentName = $request->input('txtDepartmentSearch'); $match_departments = Session::get('match_departments'); $departments = Department::whereIn('id', $match_departments)->get(); // Check which action to perform if (isset($btnFindDepartment)) { $filtered = collect([]); // Filter by name if ($departmentName != null) { $filtered = $departments->filter(function ($item) use($departmentName) { if (strpos($item->name, $departmentName) !== false) { // Get rough match return true; } }); } $departments = $filtered; } else { if (isset($btnFindAll)) { // Get all departments and clear search string $departmentName = null; //$departments = Department::all(); } else { abort(401, 'Unauthorized'); } } $data = array('departments' => $departments, 'departmentName' => $departmentName, 'user' => $user); return view('pages/departments', $data); }