Laravel - Exibir Registro Concatenado?

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