Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

648
Vistas
laravel cómo hacer un filtro múltiple usando consultas en tablas de datos usando el interruptor

tengo 5 filtros, kampus, fakulti, programa, semestre y estado, por lo que cada filtro siempre ha sido filtro con estado, lo que significa que el filtro de estado será la selección del caso del interruptor y el otro filtro será la condición en el ejemplo del caso del interruptor:

 $student = Student::select("*"); if($student){ $today = date("Ymd"); switch($request->stat){ case 'Y': if($request->kampus != "-" && $request->fakulti != "-" && $request->program != "-" && $request->part != "-" ){ $rs = $student->where('kodkampus',$request->kampus) ->where('kodfakulti',$request->fakulti) ->where('kodprogram',$request->program) ->where('part',$request->semester) ->where('vaccine_date', '<=', $today) ->where('vaccine2_date', '<=', $today); } else if ($request->kampus != "-" && $request->fakulti != "-" && $request->program != "-" ){ $rs = $student ->where('kodkampus',$request->kampus) ->where('kodprogram',$request->program) ->where('kodfakulti',$request->fakulti) ->where('vaccine_date', '<=', $today) ->where('vaccine2_date', '<=', $today); } else if ($request->kampus != "-" && $request->fakulti != "-"){ $rs = $student->where('kodkampus',$request->kampus) ->where('kodfakulti',$request->fakulti) ->where('vaccine_date', '<=', $today) ->where('vaccine2_date', '<=', $today); } else if ($request->kampus != "-"){ $rs = $student->where('kodkampus',$request->kampus) ->where('vaccine_date', '<=', $today) ->where('vaccine2_date', '<=', $today); } $rs = $rs->get(); break; case 'D1': $rs = Student::get(); break; } return datatables() ->of($rs)->make(true); }else{ abort(404,'no record'); }

entonces necesito que el filtro pueda filtrar individualmente sin necesidad de cumplir con todas las condiciones, por ejemplo, si quiero filtrar solo fakulti, puedo hacerlo sin elegir kampus, programa y semestre. Realmente necesito ayuda y necesito que sea un filtro individual pero en la misma consulta.

por favor, ayúdenme, estoy atascado unos 3 días, y soy nuevo en laravel, usando eloquent y datatable

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

No tienes que hacerlo con if else

Es un generador de consultas, puede apilar los dónde en el generador de consultas $student

 if(!$student){ return abort(404,'no record'); } $today = date("Ymd"); if ($request->stat == 'Y'){ if($request->part != "-" ){ $student->where('part',$request->semester) } if ($request->program != "-" ){ $student->where('kodprogram',$request->program) } if ($request->fakulti != "-"){ $student->where('kodfakulti',$request->fakulti); } if ($request->kampus != "-"){ $student->where('kodkampus',$request->kampus) ->where('vaccine_date', '<=', $today) ->where('vaccine2_date', '<=', $today); } $rs = $student->get(); } else { $rs = Student::get(); } return datatables() ->of($rs)->make(true);

Cambió el interruptor por otro if else porque no quiere terminar con una undefined variable $rs si $request->stat es más cercano a Y o D1

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda