Galera estou precisando exibir os registros concatenado eu tentei seguir a lógica da forma convencional, porém não está funcionando quando o retorno é em json
quero exibir o prontuário concatenado com o nome do paciente.
Exemplo: Prontuário: 77777 / Cleiton Conceição
$selectRaw .= "CONCAT('Prontuário: ',PAC_PRONTUARIO,
'/',PAC_NOME_PACIENTE) AS pac_nome_paciente";
$pac = DB::table('PACIENTES')
->selectRaw($selectRaw)
->selectRaw('PACIENTES.*')
->orderBy('pac_nome_paciente')
->get();
return json_encode($pac);
1 curtida
Galera eu conseguir resolver fazendo isso direto no javascript…
ficou assim…
function carregarPaciente(){
$.getJSON('/api/event', function(data) {
for(i=0;i<data.length;i++) {
opcao = '<option value ="' + data[i].pac_codigo + '">' +
'Prontuário:'+data[i].pac_prontuario+' - '+data[i].pac_nome_paciente + '</option>';
$('#paciente').append(opcao);
}
});
}
1 curtida
Apenas para deixar registrado caso alguém precise… tbm conseguir fazer a concatenação no controller.`
1° adicione a classe use DB;
public function indexJson()
{
//listar pacientes
$pac = Paciente::all();
// return json_encode($pac);
// $psi = Psicologo::all();
$selectRaw = "CASE WHEN PSI_FUNCAO_EXERCIDA=1 THEN ";
$selectRaw .= "CONCAT('Psicólogo: ',PSI_NOME) WHEN PSI_FUNCAO_EXERCIDA=2 THEN ";
$selectRaw .= "CONCAT('Estagiário: ',PSI_NOME)";
$selectRaw .= "ELSE CONCAT('Extensionista: ',PSI_NOME)";
$selectRaw .= "END AS PSICOLOGOS";
$psi = DB::table('psicologos')
->selectRaw($selectRaw)
->selectRaw('psicologos.*')
->orderBy('psi_nome')
->get();
return json_encode(['pac' => $pac,'psi' => $psi]);
}
1 curtida
Para ratificar se pode fazer isso dentro do próprio Model
do Paciente
dessa forma:
class Paciente
{
protected $appends = ['psicologos'];
public function getPsicologosAttribute()
{
return (
$this->attributes['PSI_FUNCAO_EXERCIDA'] == 1
? 'Psicólogo'
: 'Estagiario'
) . $this->attributes['PSI_NOME'];
}
}
1 curtida