Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

636
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!