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

Erro no arquivo controller de exclusão seguindo as PSRs

Bom dia.

Estou seguindo o exemplo do arquivo de exclusão seguindo as PSRs mas esta dando o seguinte erro:

Fatal error: Uncaught Error: Call to a member function getReference() on null in C:\Users\Usuario\Desktop\Alura\psrs\src\Controller\Exclusao.php:28 Stack trace: #0 C:\Users\Usuario\Desktop\Alura\psrs\public\index.php(40): Alura\Cursos\Controller\Exclusao->handle(Object(Nyholm\Psr7\ServerRequest)) #1 {main} thrown in C:\Users\Usuario\Desktop\Alura\psrs\src\Controller\Exclusao.php on line 28

Segue o código:

<?php

namespace Alura\Cursos\Controller;

use Alura\Cursos\Entity\Curso;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
use Doctrine\ORM\EntityManagerInterface;
use Alura\Cursos\Infra\EntityManagerCreator;

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

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

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

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

Desde já agradeço.

1 resposta
solução!

Fala, Lucas.

Você escreveu o nome do seu construtor errado. Deve ser __construct.

Utilizar uma IDE ajuda bastante a não ter esse tipo de dor de cabeça.

;-)