Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

A aula de desafio não funciona do PHP MVC

No curso MVC com PHP: Entenda o padrão Model-View-Controller Aula 07 PSRs e Boas Práticas. 11 Desafio

Já tentei de tudo e da erro http://localhost:8080/excluir-curso?id=1 erro ao chamar a url Fatal error: Uncaught Doctrine\Persistence\Mapping\MappingException: Class 'Alura\Cursos\Controller\Curso' does not exist in C:\php-instalador\php\teste\vendor\doctrine\persistence\lib\Doctrine\Persistence\Mapping\MappingException.php:94 Stack trace: #0 C:\php-instalador\php\teste\vendor\doctrine\persistence\lib\Doctrine\Persistence\Mapping\RuntimeReflectionService.php(24): Doctrine\Persistence\Mapping\MappingException::nonExistingClass('Alura\Cursos\Co...') #1 C:\php-instalador\php\teste\vendor\doctrine\persistence\lib\Doctrine\Persistence\Mapping\AbstractClassMetadataFactory.php(252): Doctrine\Persistence\Mapping\RuntimeReflectionService->getParentClasses('Alura\Cursos\Co...') #2 C:\php-instalador\php\teste\vendor\doctrine\persistence\lib\Doctrine\Persistence\Mapping\AbstractClassMetadataFactory.php(285): Doctrine\Persistence\Mapping\AbstractClassMetadataFactory->getParentClasses('Alura\Cursos\Co...') #3 C:\php-instalador\php\teste\vendor\doctrine\orm\lib\Doctrine\ORM\Mapping\ClassMetadataFactory.php(78): Doctrine in C:\php-instalador\php\teste\vendor\doctrine\persistence\lib\Doctrine\Persistence\Mapping\MappingException.php on line 94

Segue o código do curso que não funciona

<?php

namespace Alura\Cursos\Controller;

use Doctrine\ORM\EntityManagerInterface;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;

class Exclusao implements RequestHandlerInterface
{
    /**
    * @var EntityManagerInterface
    */
    private $entityManager;

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

    public function handle(ServerRequestInterface $request): ResponseInterface
    {
        $queryString = $request->getQueryParams();
        $idEntidade = $queryString['id'];
        $entidade = $this->entityManager
            ->getReference(Curso::class , $idEntidade);
        $this->entityManager->remove($entidade);
        $this->entityManager->flush();

        return new Response(302, ['Location' => '/novo-curso']);

    }
}

Aguardo resposta

Att: Cezar

1 resposta
solução!

Vi que me esqueci de importar use Alura\Cursos\Entity\Curso;

Agora funcionou