Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Refatoração para melhorar performance

Olá!

Refatorei o método buscaMedico para melhorar a performance, conforme indicado. Passou de:

private function buscaMedico(int $id)
    {
        $repositorioMedicos = $this
            ->getDoctrine()
            ->getRepository(Medico::class);
        $medico = $repositorioMedicos->find($id);
        return $medico;
    }

Para:

private function buscaMedico(int $id)
    {
        $medico = $this
            ->entityManager
            ->getReference(Medico::class, $id);
        return $medico;
    }

Após isso, o retorno ficou errado. Antes retornava o JSON do médico normalmente. Agora retorna desta forma (método para consultar um médico):

{
    "__initializer__": {},
    "__cloner__": {},
    "__isInitialized__": false,
    "id": 1
}
2 respostas
solução!

Olá, André.

Como foi explicado na aula, o método getReference cria uma entidade gerenciada pelo Doctrine apenas com o ID. Deve ser utilizado apenas quando queremos realizar alguma manipulação na entidade e não precisamos buscá-la do banco de dados.

O método buscaMedico precisa que os dados venham do banco de dados.

Espero ter esclarecido.

Forte abraço e bons estudos.

Entendi! Muito obrigado!