2
respostas

Aplicação não redireciona + Notice em Persistencia.php

-aplicação não redireciona, fica parada no script executado -Persistencia.php retorna: ** Notice: Undefined index: id in C:\Users\rocun\Documents\GitHub\PHP-Alura\MVC-psr\src\Controller\Persistencia.php on line 33**

https://github.com/rocunha09/PHP-Alura/tree/main/MVC-psr

2 respostas

Olá!

Tem como você mostrar as informações que estão vindo no $request?

então todo redirect não funciona

exemplo: (Exclusao)

<?php


namespace Alura\Cursos\Controller;


use Alura\Cursos\Entity\Curso;
use Doctrine\ORM\EntityManagerInterface;
use Nyholm\Psr7\Response;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;


class Exclusao implements RequestHandlerInterface
{
    private $entityManager;

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

    public function handle(ServerRequestInterface $request): ResponseInterface
    {
        $response = new Response(302, ['Location' => '/listar-cursos']);

        //pegando id que veio da pagina com o objeto $request
        $queryString = $request->getQueryParams();
        $id = filter_var($queryString['id'], FILTER_VALIDATE_INT);

        if(is_null($id) ||$id === false){
            $this->defineMensagem('danger', 'Curso inexistente.');
            return $response;
        }

        $entidade = $this->entityManager->getReference(Curso::class, $id);
        $this->entityManager->remove($entidade);
        $this->entityManager->flush();

        return $response;
    }


}

ele não executa o redirecionamento

 $response = new Response(302, ['Location' => '/listar-cursos']);

mesmo se usar diretamente, sem passar como variável no return