Oláa! Estou tendo o seguinte erro ao tentar acessar a minha página listar-cursos através do controller:
Fatal error: Uncaught Error: Call to a member function findAll() on null in C:\Users\BIANCA.FIALHO\Documents\curso php\php-mvc\gerenciador-de-cursos\src\Controller\ListarCursos.php:19 Stack trace: #0 C:\Users\BIANCA.FIALHO\Documents\curso php\php-mvc\gerenciador-de-cursos\public\index.php(10): Alura\Cursos\Controller\ListarCursos->processaRequisicao() #1 {main} thrown in C:\Users\BIANCA.FIALHO\Documents\curso php\php-mvc\gerenciador-de-cursos\src\Controller\ListarCursos.php on line 19
codigo da classe ListarCursos:
<?php
namespace Alura\Cursos\Controller;
use Alura\Cursos\Entity\Curso;
use Alura\Cursos\Infra\EntityManagerCreator;
class ListarCursos
{
private $repositorioDeCursos;
public function __construct()
{
$entityManager = (new EntityManagerCreator())->getEntityManager();
$this->$repositorioDeCursos = $entityManager->getRepository(Curso::class);
}
public function processaRequisicao()
{
$cursos = $repositorioDeCursos->findAll();
?>
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<title>Document</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
</head>
<body>
<div class="container">
<div class="jumbotron">
<h1>Listar cursos</h1>
</div>
<a href="formulario-novo-curso" class="btn btn-primary mb-2">
Novo Curso
</a>
<ul class="list-group">
<?php foreach ($cursos as $curso): ?>
<li class="list-group-item">
<?= $curso->getDescricao(); ?>
</li>
<?php endforeach; ?>
</ul>
</div>
</body>
</html>
<?php
}
}
código do index:
<?php
require __DIR__ . '/../vendor/autoload.php';
use Alura\Cursos\Controller\ListarCursos;
switch ($_SERVER['PATH_INFO']) {
case '/listar-cursos':
$controlador = new ListarCursos();
$controlador->processaRequisicao();
break;
case '/formulario-novo-curso':
require 'formulario-novo-curso.php';
break;
default:
echo "Erro 404: Não Encontrado";
}