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' WHEN PSI_FUNCAO_EXERCIDA=2 THEN 'Estagiário' ELSE 'Extensionista' END) AS FUNCAO"),'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).
gostaria de trazer todos os registros caso $request->tipo esteja vazio.
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?
if(!is_null($request->tipo)){
$psi>where(‘PSI_FUNCAO_EXERCIDA’,’=’,$request->tipo)
}
->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);
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);
}