Bom dia.
1) Não consegui entender ainda como que esses métodos feitos apenas em memória fazem persistir corretamente no banco o registro. Criamos um aluno e adicionamos telefones a ele com o método addPhone. E como que ao persistir o doctrine entende que ele tem que salvar o aluno com nome e id na tabela Aluno e os telefones adicionados para aluno ele tem que salvar na tabela Telefone com o id de Aluno. Estou confusa.
2) O professor disse que quando adiciono os telefones ele deixa de ser arrayCollection e passa a ser outra coleção do doctrine já armazenada no banco, então devido essa alteração automática na hora de persistir, essa propriedade não pode ser readonly, mas confesso que não compreendi ainda. E também não entendi quando colocar então uma propriedade como readonly ou não.
3) Quando fizemos esse código para mostrar os telefones dos alunos:
foreach ($alunosAscNome as $aluno) {
echo $aluno->nome . PHP_EOL;
echo "\nTelefones:\n";
foreach($aluno->getTelefones() as $telefone){
echo $telefone->numero . PHP_EOL;
}
echo PHP_EOL;
}
Fiquei com a seguinte dúvida: Quando buscamos um Aluno tivemos que usar o find() e como para o telefone não? Eu não teria que informar algo para quando ele buscar o Aluno, ele buscar o telefone associado a ele? Como ele faz isso automático?