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.