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

Trying to get property 'crm' of non-object

O meu $dadosEmJson está retornando null.

 <?php

namespace App\Controller;

use App\Entity\Medico;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HttpFoundation\JsonResponse;

class MedicosController {

    /**
     * @Route("/medicos", methods={"POST"})
     */
    public function novo(Request $request): Response {

        $corpoRequisicao = $request->getContent();
        $dadosEmJson = json_decode($corpoRequisicao);

        var_dump($dadosEmJson);
        exit();

        $medico = new Medico();
        $medico->crm = $dadosEmJson->crm;
        $medico->nome = $dadosEmJson->nome;

        return new JsonResponse($medico);
    }
}
2 respostas
solução!

Pessoal, me desculpem, pois já achei o erro. Vou postar aqui caso mais alguém tenha também.

Quando fui escrever o JSON no Postman, acabei colocando o atributo nome sem as aspas:

{
    "crm": 123456,
    "nome": Primeiro médico
}

Por isso ele me retornava null. Colocando as aspas ele funciona corretamente.

{
    "crm": 123456,
    "nome": "Primeiro médico"
}

Olá Ricardo, obrigado por compartilhar e explicar a sua solução! Vou marcar sua resposta como solução do tópico.

Qualquer dúvida é só falar aqui ou abrir um novo tópico.