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

Ao efetuar a listagem dos alunos aparece uma EXCEPTION

<?php

use Alura\Pdo\Domain\Model\Student;

require_once 'vendor/autoload.php';

$caminhoBanco = __DIR__ . '/banco.sqlite';
$pdo = new PDO('sqlite: . $caminhoBanco');

$statement = $pdo->query('SELECT * FROM studdents;');
$studentDataList = $statement->fetchAll(PDO::FETCH_ASSOC); // método de consulta padrão
$studentList = [];

// fazendo aqui um tipo de buffer pegando so o que precisa e trazendo para objetos
foreach ($studentDataList as $studentData) {
        $studentList[] = new Student(
            $studentData['id'],
            $studentData['name'],
            new \DateTimeImmutable($studentData['birth_date'])
        );
}
var_dump

D:\PUCPR\Fundamentos_programação_web_1\PHP\php-8.1.12-nts-Win32-vs16-x64\php.exe D:\PUCPR\Fundamentos_programação_web_1\PHP_PDO\php-pdo-projeto-inicial\lista-alunos.php

Deprecated: DateTime::__construct(): Passing null to parameter #1 ($datetime) of type string is deprecated in D:\PUCPR\Fundamentos_programação_web_1\PHP_PDO\php-pdo-projeto-inicial\lista-alunos.php on line 20

Fatal error: Uncaught TypeError: Alura\Pdo\Domain\Model\Student::__construct(): Argument #2 ($name) must be of type string, null given, called in D:\PUCPR\Fundamentos_programação_web_1\PHP_PDO\php-pdo-projeto-inicial\lista-alunos.php on line 20 and defined in D:\PUCPR\Fundamentos_programação_web_1\PHP_PDO\php-pdo-projeto-inicial\src\Domain\Model\Student.php:11
Stack trace:
#0 D:\PUCPR\Fundamentos_programação_web_1\PHP_PDO\php-pdo-projeto-inicial\lista-alunos.php(20): Alura\Pdo\Domain\Model\Student->__construct(3, NULL, Object(DateTime))
#1 {main}
  thrown in D:\PUCPR\Fundamentos_programação_web_1\PHP_PDO\php-pdo-projeto-inicial\src\Domain\Model\Student.php on line 11
PHP Deprecated:  DateTime::__construct(): Passing null to parameter #1 ($datetime) of type string is deprecated in D:\PUCPR\Fundamentos_programação_web_1\PHP_PDO\php-pdo-projeto-inicial\lista-alunos.php on line 20
PHP Fatal error:  Uncaught TypeError: Alura\Pdo\Domain\Model\Student::__construct(): Argument #2 ($name) must be of type string, null given, called in D:\PUCPR\Fundamentos_programação_web_1\PHP_PDO\php-pdo-projeto-inicial\lista-alunos.php on line 20 and defined in D:\PUCPR\Fundamentos_programação_web_1\PHP_PDO\php-pdo-projeto-inicial\src\Domain\Model\Student.php:11
Stack trace:
#0 D:\PUCPR\Fundamentos_programação_web_1\PHP_PDO\php-pdo-projeto-inicial\lista-alunos.php(20): Alura\Pdo\Domain\Model\Student->__construct(3, NULL, Object(DateTime))
#1 {main}
  thrown in D:\PUCPR\Fundamentos_programação_web_1\PHP_PDO\php-pdo-projeto-inicial\src\Domain\Model\Student.php on line 11

Process finished with exit code 255
2 respostas
solução!

Eae Anderson, tudo bem? Posso estar errado, mas a tabela que vc chamou na query pra listar os alunos pode estar com o nome diferente da que vc criou. Percebi que nessa linha de código students esta com dois ds.

$statement = $pdo->query('SELECT * FROM studdents;');

compare com a tabela que vc criou no arquivo conexao.php. Não sei dizer se é exatamente isso, mas penso que vale a pena conferir.

Opa, realmente eu errei lá na hora de declarar o nome da tabela, ai ficou com dois 'd'. Agora fora isto parou de funcionar, bom vou seguir logo para o docrtine.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software