public function buscar(Request $request) { /*Listados de combobox*/ $roles = Role::select('id', 'name')->get(); /*Ahi se guardaran los resultados de la busqueda*/ $usuarios = null; $validator = Validator::make($request->all(), ['tipoUsuario' => 'exists:roles,id']); /*Si validador no falla se pueden realizar busquedas*/ if ($validator->fails()) { } else { $id = Auth::user()->id; /*Busqueda sin parametros*/ if ($request->nombre == "" && $request->tipoUsuario == "") { $usuarios = DB::table('users')->join('role_user', 'users.id', '=', 'role_user.user_id')->join('roles', 'role_user.role_id', '=', 'roles.id')->where('users.id', '!=', $id)->select('users.id', 'users.name', 'users.email', 'roles.name as rolName')->orderby('users.name', 'asc')->paginate(15); } /*Busqueda solo con tipo usuario*/ if ($request->nombre == "" && $request->tipoUsuario != "") { $usuarios = DB::table('users')->join('role_user', 'users.id', '=', 'role_user.user_id')->join('roles', 'role_user.role_id', '=', 'roles.id')->where('users.id', '!=', $id)->where('roles.id', '=', $request->tipoUsuario)->select('users.id', 'users.name', 'users.email', 'roles.name as rolName')->orderby('users.name', 'asc')->paginate(15); } /*Busqueda solo con nombre*/ if ($request->nombre != "" && $request->tipoUsuario == "") { $request->nombre = trim($request->nombre); $usuarios = DB::table('users')->join('role_user', 'users.id', '=', 'role_user.user_id')->join('roles', 'role_user.role_id', '=', 'roles.id')->where('users.id', '!=', $id)->where('users.name', 'LIKE', "%{$request->nombre}%")->select('users.id', 'users.name', 'users.email', 'roles.name as rolName')->orderby('users.name', 'asc')->paginate(15); } /*Busqueda solo con nombre y tipo de usuario*/ if ($request->nombre != "" && $request->tipoUsuario != "") { $request->nombre = trim($request->nombre); $usuarios = DB::table('users')->join('role_user', 'users.id', '=', 'role_user.user_id')->join('roles', 'role_user.role_id', '=', 'roles.id')->where('users.id', '!=', $id)->where('users.name', 'LIKE', "%{$request->nombre}%")->where('roles.id', '=', $request->tipoUsuario)->select('users.id', 'users.name', 'users.email', 'roles.name as rolName')->orderby('users.name', 'asc')->paginate(15); } } if ($usuarios != null) { /*Si no es nulo puede contar los resultados*/ $num = $usuarios->total(); } else { $num = 0; } if ($num <= 0) { Session::flash('error', 'No se encontraron resultados'); } else { Session::flash('message', 'Se encontraron ' . $num . ' resultados'); } /*Regresa la vista*/ return view('Administracion/Usuarios/buscar')->with(['usuarios' => $usuarios, 'roles' => $roles]); }