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

Erro "SELECT * FROM Course" - NOME NÃO APARECE

Olá Alura,

aqui está o link:

git@github.com:tiagobrandao03/2612-doctrine.git

eu fiz a busca no PROMPT:

php bin/doctrine.php dbal:run-sql "SELECT * FROM Course"

Ele so busca o id:

id-

1
2
3
4
5
6
7

Fui inserir dados :

C:\xampp\htdocs\2612-doctrine>php bin/insert-student.php
PHP Fatal error:  Uncaught Error: Call to undefined method Alura\Doctrine\Entity\Student::addPhone() in C:\xampp\htdocs\2612-doctrine\bin\insert-student.php:12
Stack trace:
#0 {main}
 thrown in C:\xampp\htdocs\2612-doctrine\bin\insert-student.php on line 12

Esse é o erro que esta acontecendo

2 respostas

Olá, Tiago.

Tudo bem?

Parece que você está enfrentando dois problemas distintos.

Problema 1: Busca no banco de dados só retorna o ID

Quando você executa a busca no banco de dados com o comando:

php bin/doctrine.php dbal:run-sql "SELECT * FROM Course"

e só obtém os IDs, isso pode estar relacionado à configuração da sua entidade Course. Certifique-se de que a entidade Course está corretamente mapeada com todos os campos que você deseja buscar. Por exemplo:

/**
 * @Entity
 * @Table(name="courses")
 */
class Course
{
    /** @Id @Column(type="integer") @GeneratedValue */
    private $id;

    /** @Column(type="string") */
    private $name;

    // Outros campos e métodos...
}

Problema 2: Erro ao inserir dados

O erro Call to undefined method Alura\Doctrine\Entity\Student::addPhone() indica que o método addPhone não está definido na sua entidade Student. Certifique-se de que você tem esse método implementado na classe Student. Aqui está um exemplo de como poderia ser:

/**
 * @Entity
 * @Table(name="students")
 */
class Student
{
    /** @Id @Column(type="integer") @GeneratedValue */
    private $id;

    /** @Column(type="string") */
    private $name;

    /** @OneToMany(targetEntity="Phone", mappedBy="student") */
    private $phones;

    public function __construct()
    {
        $this->phones = new ArrayCollection();
    }

    public function addPhone(Phone $phone)
    {
        $this->phones->add($phone);
        $phone->setStudent($this); // Se necessário, dependendo do mapeamento
    }

    // Outros métodos...
}

Verifique se o método addPhone está corretamente implementado e se a entidade Phone está corretamente configurada para o relacionamento.

Certifique-se de que suas entidades estão corretamente configuradas e que todos os métodos necessários estão implementados. Isso deve resolver os problemas que você está enfrentando.

Espero ter ajudado. Qualquer dúvida manda aqui. Bons estudos.

solução!

Olá Alura,

Eu fiz a alteração e não constou os dados do nome e inserir dados e não teve alteração.

aqui esta o link: git@github.com:tiagobrandao03/2612-doctrine.git

estou tendo problema para mostrar o nome na consulta do** COURSE(ENTIDADE)** em DOCTRINE:

php bin/doctrine.php dbal:run-sql "SELECT * FROM Course"

O Prompt mostra isso:

id-

1
2
3
4
5
6
7