Ejemplo n.º 1
0
 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]);
 }