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

No retorno da collection da erro

No Aluno.php o método getTelefones() retorna um Collection:

    public function getTelefones(): Collection
    {
        return $this->telefones;
    }

Quando o script busca-aluno.php roda, aparentemente não reconhece o método map() (phpStorm :Method 'map' not found in mysql_xdevapi\Collection ):

foreach ($alunoList as $aluno){
    $telefones = $aluno->getTelefones()->map(function (Telefone $telefone) {
            return $telefone->getNumero();
        })
        ->toArray();
    echo "ID: {$aluno->getId()} \n NOME: {$aluno->getNome()}\n";
    echo "Telefones:" . implode(', ', $telefones);
    echo "\n\n";
}

E no terminal retorna o seguinte erro :

PHP Fatal error:  Uncaught TypeError: Return value of Alura\Doctrine\Entity\Aluno::getTelefones() must be an instance of mysql_xdevapi\Collection, instance of Doctrine\ORM\PersistentCollection
 returned in C:\Users\admin\Documents\projetos-2020\treinamento_doctrine\src\Entity\Aluno.php:60
Stack trace:
#0 C:\Users\admin\Documents\projetos-2020\treinamento_doctrine\commands\busca-aluno.php(19): Alura\Doctrine\Entity\Aluno->getTelefones()
#1 {main}
  thrown in C:\Users\admin\Documents\projetos-2020\treinamento_doctrine\src\Entity\Aluno.php on line 60

Quando eu retiro o : Collection funciona normal

$ php commands/busca-aluno.php
ID: 2
 NOME: Isaac Mendes
Telefones:(11) 5953-9915

ID: 3
 NOME: Felipe Mendes
Telefones:(11) 5926-6532, (11) 96644-5522

ID: 4
 NOME: Cintia Mendes
Telefones:(11) 5926-6532, (11) 96644-5522

não consegui entender o erro, se alguém souber da um help, só pra não passar em branco....

Obrigado

2 respostas
solução!

Fala, Felipe. Você importou a interface Collection errada no início do seu arquivo. A mensagem de erro é bem clara.

:-D

Putz, não me atentei a isso, obrigado professor.