Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Aplicação deixou de salvar novo curso.

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?

1 resposta
solução!

Ok. Resolvido