Ao fazer as implementações deste capítulo, a aplicação passou a não mais funcionar para salvar novo curso. O erro é:
[Mon Sep 6 16:07:23 2021] 127.0.0.1:57977 [200]: POST /salvar-curso - Uncaught Doctrine\ORM\ORMException: The identifier id is missing for a query of Alura\Cursos\Entity\Curso in C:\Users\12829627873\OneDrive - Receita Federal do Brasil\data_science\php_Alura\12-MVC_PHP\vendor\doctrine\orm\lib\Doctrine\ORM\ORMException.php:310
Não foi feita alteração nesse sentido no arquivo Persistencia.php:
$tipo = 'success';
if (!is_null($id) || $id !== false) {
$curso = $this->entityManager->find(Curso::class, $id);
$curso->setDescricao($descricao);
$this->defineMensagem($tipo, 'Curso atualizado com sucesso.');
} else {
$this->entityManager->persist($curso);
$this->defineMensagem($tipo, 'Curso inserido com sucesso.');
}
$this->entityManager->flush();
A classe Curso.php continua como antes também:
<?php
namespace Alura\Cursos\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @Entity
* @Table(name="cursos")
*/
class Curso
{
/**
* @Id
* @GeneratedValue
* @Column(type="integer")
*/
private $id;
/**
* @Column(type="string")
*/
private $descricao;
public function getId(): int
{
return $this->id;
}
public function setId(int $id): void
{
$this->id = $id;
}
public function getDescricao(): string
{
return $this->descricao;
}
public function setDescricao(string $descricao): void
{
$this->descricao = $descricao;
}
}
Alguém poderia me ajudar?