1
resposta

PHP Warning: Undefined Property: Alura\Pdo\Domain\Model\Student in C:\...in line 20

Bom dia, pessoal!

Não tive problemas até o momento nesse capítulo de Controle de Transações até rodar o "criar-turma.php" que formulamos aqui. Estou recebendo esse erro que passei no título "PHP Warning: Undefined Property: Alura\Pdo\Domain\Model\Student in C:...in line 20" como se houvesse uma propriedade não definida no arquivo Student (?)...mas ao checar o Student.php e compará-lo com os códigos disponibilizados por vocês, não encontrei a diferença...e com relação ao criar-turma.php, a linha 20 a qual o erro se refere é a "$studentRepository->save($aStudent), como consta no código a seguir:

<?php

require_once 'vendor/autoload.php';
use Alura\Pdo\Infrastructure\Persistence\ConnectionCreator;
use Alura\Pdo\Infrastructure\Repository\PDOStudentRepository;
use Alura\Pdo\Domain\Model\Student;


//criar a conexão com o banco de dados
$connection=ConnectionCreator::createConnection();

//acessando todas as funções referentes a repositório de alunos, através da conexão com o banco de dados
$studentRepository=new PDOStudentRepository($connection);

//realizo processo de definições de turma
//o comando begintransaction permite que comandos sejam enviados pro PDO mas não sejam imediatamente rodados pela query dos bancos de dados
//a ideia de transação é justamente enviar um comando completo e só rodá-lo ao fim, de uma vez, caso tudo esteja correto
$connection->beginTransaction();
$aStudent=new Student(null, 'Sergio Lopes', new DateTimeImmutable('1985-01-01'));
$studentRepository->save($aStudent);

//adicionando um segundo aluno
$anotherStudent=new Student(null, 'Mauricio Prado', new DateTimeImmutable('1993-10-10'));
$studentRepository->save($anotherStudent);

//abaixo, temos o comando que efetivamente encerra a transação, isto é, a remessa de informações. Sem o comando abaixo, nada acima é executado de fato
$connection->commit();

O que poderia ser? Cabe a obs de que por ser um Warning, o código na verdade rodou (ele alimentou a lista), mas não entendi o erro.

Desde já agradeço o apoio!

1 resposta

Oii, Guilherme. Você consegue me mandar seu código?