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

Erro na exclusão devido ao parâmetro id na url

Sitema: Linux Mint Serividor: Nginx

Repositório com meu projeto: https://github.com/maurisfer/mvc-alura

Criei o roteamento conforme descrito nas aulas. No momento da exclusão, porém, quando é chamado a rota '/excluir-curso', o servidor me volta um erro devido ao indice do array que monta a classe no index não ter o parâmetro de id como é definido na âncora para capturar o id do curso:

index.php:

<?php

require __DIR__ .'/../vendor/autoload.php';

use Alura\Cursos\Controller\InterfaceControladorRequisicao;


$path = $_SERVER['REQUEST_URI'];
$routes =  require __DIR__ .'/../config/routes.php';

if (!array_key_exists($path, $routes)) {
    http_response_code(404);
}

$controllerClass = $routes[$path];
$controller = new $controllerClass();
$controller->processaRequisicao();

routes.php:

<?php

use Alura\Cursos\Controller\Exclusao;
use Alura\Cursos\Controller\FormularioInsercao;
use Alura\Cursos\Controller\ListarCursos;
use Alura\Cursos\Controller\Persistencia;

return [
    '/listar-cursos' => ListarCursos::class,
    '/novo-curso' => FormularioInsercao::class,
    '/salvar-curso' => Persistencia::class,
    '/excluir-curso' => Exclusao::class
];

listar-cursos.php:

<?php include __DIR__ . '/../../view/header.phtml';?>
    <a href="/novo-curso" class="btn btn-primary mb2">Novo curso</a>
    <ul class="list-group">
        <?php foreach ($cursos as $curso): ?>
            <li class="list-group-item d-flex justify-content-between">
                <?= $curso->getDescricao(); ?>
                <a href="/excluir-curso?id=<?= $curso->getId();?>" class="btn btn-danger btn-sm">Excluir</a>
            </li>
        <?php endforeach; ?>
    </ul>
<?php include __DIR__ . '/../../view/footer.phtml';?>

Erro na exclusão (Está caindo na validação feita no index que não identifica a rota e não chama o Controller por causa do paramêtro ?id='getId();?>': Erro de requisição

Precisaria de ajuda para entender a ocorrência disso;

1 resposta
solução!

Resolução:

Caso ocorra o erro acima, deve-se tratar no index.php a variável $path:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade