Laravel - Trazer todos os registros quando o parâmetro for vazio
4 respostas
laravel
C
Cleiton_Conceicao
gente, como faço para trazer todos os registros caso o parâmetro não esteja preenchido?
minha consulta é essa…
$psi=DB::table('psicologos')->select('psi_codigo','psi_nome',DB::raw("(CASE WHEN PSI_FUNCAO_EXERCIDA=1 THEN'Psicólogo'WHENPSI_FUNCAO_EXERCIDA=2THEN'Estagiário'ELSE'Extensionista'END)ASFUNCAO"),'psi_matricula','psi_crp')->where('PSI_FUNCAO_EXERCIDA','=',$request->tipo)->where('emp_codigo','=',session('empresa_id'))->orderBy('psi_nome')->paginate(10);// meu problema está nesse filtro ->where('PSI_FUNCAO_EXERCIDA','=',$request->tipo).gostariadetrazertodososregistroscaso$request->tipoestejavazio.
me mandaram fazer algo assim… mas está dando erro de sintax.
é serio mesmo que pra fazer algo tão simples tenho que escrever várias linhas de código?
não existe nada que seja ,$request->tipo or $request->tipo is null?
ou então um case no where?
->select('psi_codigo','psi_nome',DB::raw("(CASE WHEN PSI_FUNCAO_EXERCIDA=1 THEN 'Psicólogo' WHEN PSI_FUNCAO_EXERCIDA=2 THEN 'Estagiário' ELSE 'Extensionista' END) AS FUNCAO"),'psi_matricula','psi_crp')->where('psi_nome','LIKE',"%".$request->nome."%")->where(DB::raw('coalesce(psi_crp,"")'),'LIKE',"%".$request->crp."%")->where(DB::raw('coalesce(psi_matricula,"")'),'LIKE',"%".$request->matricula."%")->where('PSI_FUNCAO_EXERCIDA','=',$request->tipo)->where('emp_codigo','=',session('empresa_id'))->orderBy('psi_nome')->paginate(10);
C
Cleiton_Conceicao
vou deixar uma gambiarra temporária até descobrir como é.
if(!is_null($request->tipo)){$psi=DB::table('psicologos')->select('psi_codigo','psi_nome',DB::raw("(CASE WHEN PSI_FUNCAO_EXERCIDA=1 THEN 'Psicólogo' WHEN PSI_FUNCAO_EXERCIDA=2 THEN 'Estagiário' ELSE 'Extensionista' END) AS FUNCAO"),'psi_matricula','psi_crp')->where('psi_nome','LIKE',"%".$request->nome."%")->where(DB::raw('coalesce(psi_crp,"")'),'LIKE',"%".$request->crp."%")->where(DB::raw('coalesce(psi_matricula,"")'),'LIKE',"%".$request->matricula."%")->where('PSI_FUNCAO_EXERCIDA','=',$request->tipo)->where('emp_codigo','=',session('empresa_id'))->orderBy('psi_nome')->paginate(10);}else{$psi=DB::table('psicologos')->select('psi_codigo','psi_nome',DB::raw("(CASE WHEN PSI_FUNCAO_EXERCIDA=1 THEN 'Psicólogo' WHEN PSI_FUNCAO_EXERCIDA=2 THEN 'Estagiário' ELSE 'Extensionista' END) AS FUNCAO"),'psi_matricula','psi_crp')->where('psi_nome','LIKE',"%".$request->nome."%")->where(DB::raw('coalesce(psi_crp,"")'),'LIKE',"%".$request->crp."%")->where(DB::raw('coalesce(psi_matricula,"")'),'LIKE',"%".$request->matricula."%")->where('emp_codigo','=',session('empresa_id'))->orderBy('psi_nome')->paginate(10);}