Solucionado (ver solução)
Solucionado
(ver solução)
8
respostas

Alguém poderia me ajudar?

Notice: Undefined property: Alura\Cursos\Controller\ListarCursos::$repositorioCursos in D:\gerenciador-de-cursos\src\Controller\ListarCursos.php on line 30

Fatal error: Uncaught Error: Call to a member function findAll() on null in D:\gerenciador-de-cursos\src\Controller\ListarCursos.php:30 Stack trace: #0 D:\gerenciador-de-cursos\public\index.php(22): Alura\Cursos\Controller\ListarCursos->processaRequisicao() #1 {main} thrown in D:\gerenciador-de-cursos\src\Controller\ListarCursos.php on line 30

8 respostas

Verifica se no seu arquivo ListarCursos.php tem o atributo private $repositorioDeCursos e o constructor

    public function __construct(EntityManagerInterface $entityManager)
    {
        $this->repositorioDeCursos = $entityManager
            ->getRepository(Curso::class);
    }

Continua o mesmo erro!

PHP Fatal error: Uncaught ArgumentCountError: Too few arguments to function Alura\Cursos\Controller\ListarCursos::__construct(), 0 passed in /media/deise/Ventoy/gerenciador-de-cursos/public/index.php on line 21 and exactly 1 expected in /media/deise/Ventoy/gerenciador-de-cursos/src/Controller/ListarCursos.php:19 Stack trace:

#0 /media/deise/Ventoy/gerenciador-de-cursos/public/index.php(21): Alura\Cursos\Controller\ListarCursos->__construct()

#1 {main} thrown in /media/deise/Ventoy/gerenciador-de-cursos/src/Controller/ListarCursos.php on line 19 [Thu Jul 8 08:39:19 2021] 127.0.0.1:46978 [500]: GET /listar-cursos - Uncaught ArgumentCountError: Too few arguments to function Alura\Cursos\Controller\ListarCursos::__construct(), 0 passed in /media/deise/Ventoy/gerenciador-de-cursos/public/index.php on line 21 and exactly 1 expected in /media/deise/Ventoy/gerenciador-de-cursos/src/Controller/ListarCursos.php:19 Stack trace:

#0 /media/deise/Ventoy/gerenciador-de-cursos/public/index.php(21): Alura\Cursos\Controller\ListarCursos->__construct()

#1 {main} thrown in /media/deise/Ventoy/gerenciador-de-cursos/src/Controller/ListarCursos.php on line 19

`<?php

namespace Alura\Cursos\Controller;

use Alura\Cursos\Entity\Curso; use Alura\Cursos\Infra\EntityManagerCreator; use Alura\Cursos\Controller\ControllerComHtml; use Doctrine\Common\Persistence\ObjectRepository;

class ListarCursos extends ControllerComHtml implements InterfaceControladorRequisicao { /**

* @var \Doctrine\Common\Persistence\ObjectRepository
*/
private $repositorioDeCursos;

public function __construct(EntityManagerInterface  $entityManager)
{
    $entityManager = (new EntityManagerCreator())
        ->getEntityManager();
    $this->repositorioDeCursos = $entityManager
        ->getRepository(Curso::class);
}


public function processaRequisicao(): void
{
    //if(!is_null($this->repositorioCursos->findAll()))
    echo $this->renderizaHtml('cursos/listar-cursos.php',[
        'cursos' => $this->repositorioCursos->findAll(),
        'titulo' => 'Lista de Cursos',
    ]);

}

}

A variável repositorioDeCurso retornava null,por que estava escrita errada! Só que agora apareceu esse erro no construtor de ListarCursos,se retiro os paramêtros dá esse novo erro: PHP Fatal error: Uncaught RuntimeException: Setup tool cannot configure caches without doctrine/cache 1.11 or symfony/cache. Please add an explicit dependency to either library. in /media/deise/Ventoy/gerenciador-de-cursos/vendor/doctrine/orm/lib/Doctrine/ORM/Tools/Setup.php:184 Stack trace:

#0 /media/deise/Ventoy/gerenciador-de-cursos/vendor/doctrine/orm/lib/Doctrine/ORM/Tools/Setup.php(160): Doctrine\ORM\Tools\Setup::createCacheInstance()

#1 /media/deise/Ventoy/gerenciador-de-cursos/vendor/doctrine/orm/lib/Doctrine/ORM/Tools/Setup.php(139): Doctrine\ORM\Tools\Setup::createCacheConfiguration()

#2 /media/deise/Ventoy/gerenciador-de-cursos/vendor/doctrine/orm/lib/Doctrine/ORM/Tools/Setup.php(87): Doctrine\ORM\Tools\Setup::createConfiguration()

#3 /media/deise/Ventoy/gerenciador-de-cursos/src/Infra/EntityManagerCreator.php(22): Doctrine\ORM\Tools\Setup::createAnnotationMetadataConfiguration()

#4 /media/deise/Ventoy/gerenciador-de-cursos/src/Controller/ListarCursos.php(24): Alura\Cursos\Infra\EntityManagerCreator->getEntityManager()

#5 /media/deise/Ventoy/gerenciador-de-cursos/public/index.php(18): Alura\Cursos\Controller\ListarCursos->__construct()

#6 {main} thrown in /media/deise/Ventoy/gerenciador-de-cursos/vendor/doctrine/orm/lib/Doctrine/ORM/Tools/Setup.php on line 184 [Thu Jul 8 10:08:58 2021] 127.0.0.1:48610 [500]: GET /listar-cursos - Uncaught RuntimeException: Setup tool cannot configure caches without doctrine/cache 1.11 or symfony/cache. Please add an explicit dependency to either library. in /media/deise/Ventoy/gerenciador-de-cursos/vendor/doctrine/orm/lib/Doctrine/ORM/Tools/Setup.php:184 Stack trace:

#0 /media/deise/Ventoy/gerenciador-de-cursos/vendor/doctrine/orm/lib/Doctrine/ORM/Tools/Setup.php(160): Doctrine\ORM\Tools\Setup::createCacheInstance()

#1 /media/deise/Ventoy/gerenciador-de-cursos/vendor/doctrine/orm/lib/Doctrine/ORM/Tools/Setup.php(139): Doctrine\ORM\Tools\Setup::createCacheConfiguration()

#2 /media/deise/Ventoy/gerenciador-de-cursos/vendor/doctrine/orm/lib/Doctrine/ORM/Tools/Setup.php(87): Doctrine\ORM\Tools\Setup::createConfiguration()

#3 /media/deise/Ventoy/gerenciador-de-cursos/src/Infra/EntityManagerCreator.php(22): Doctrine\ORM\Tools\Setup::createAnnotationMetadataConfiguration()

#4 /media/deise/Ventoy/gerenciador-de-cursos/src/Controller/ListarCursos.php(24): Alura\Cursos\Infra\EntityManagerCreator->getEntityManager()

#5 /media/deise/Ventoy/gerenciador-de-cursos/public/index.php(18): Alura\Cursos\Controller\ListarCursos->__construct()

#6 {main} thrown in /media/deise/Ventoy/gerenciador-de-cursos/vendor/doctrine/orm/lib/Doctrine/ORM/Tools/Setup.php on line 184

solução!

Sobre o 1 erro foi resolvido por causa da Variavel $repositorioCursos na verdade é $repositorioDeCursos por isso retornava null.

O segundo erro estava dando problema no driver do PDO aí resolvi com esse comando: sudo apt-get install php8.0-sqlite(se for pra linux)

Eu tive esse mesmo problema.. em projetos de cursos antes desse, e agora também.. porém, resolvei quando rodei o comando no terminal:

composer require symfony/cache

O engraçado quando testei no computador do estágio pediu, em casa, deu certo sem utilizar esse comando. veja se no seu caso, resolve..

pois é,o meu também tava assim,mais quem vai entender né!