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

No route found for "GET /medicos": Method Not Allowed (Allow: POST)

Não Estou conseguindo acessar a minha rota /medicos

** Obs.: **

- O PHP está rodando no terminal
- No Ola Mundo funcionou...

** Classe MedicosController.php **

<?php

namespace App\Controller;

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

class MedicosController { /**

 * @var EntityManagerInterface
 */
private $entityManager;

public function __construct(EntityManagerInterface $entityManager)
{
    $this->entityManager = $entityManager;
}

/**
 * @Route("/medicos", methods={"POST"})
 */
public function novo(Request $request): Response
{
    // Uma string com o corpo da requisição
    $corpoRequisicao = $request->getContent();
    // Criando um StdClass no JSON
    $dadoEmJson = json_decode($corpoRequisicao);

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

    // Observando o objeto
    $this->entityManager->persist($medico);
    // realizar várias operações com o banco
    $this->entityManager->flush();

    // Crtiando uma instância com a requisição e retornando
    return new JsonResponse($medico);
O Problema é que está dando rota não acusada...
No route found for "GET /medicos": Method Not Allowed (Allow: POST)
}

}

2 respostas

Perdão pela formatação, a classe MedicosController.php é essa

<?php

namespace App\Controller;

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

class MedicosController { /**

 * @var EntityManagerInterface
 */
private $entityManager;

public function __construct(EntityManagerInterface $entityManager)
{
    $this->entityManager = $entityManager;
}

/**
 * @Route("/medicos", methods={"POST"})
 */
public function novo(Request $request): Response
{
    // Uma string com o corpo da requisição
    $corpoRequisicao = $request->getContent();
    // Criando um StdClass no JSON
    $dadoEmJson = json_decode($corpoRequisicao);

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

    // Observando o objeto
    $this->entityManager->persist($medico);
    // realizar várias operações com o banco
    $this->entityManager->flush();

    // Crtiando uma instância com a requisição e retornando
    return new JsonResponse($medico);
solução!

Perdão mais uma vez, não estava colocando a opção POST na hora de mandar os dados para o PostMan...

Problema resolvido..

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software