A váriavel $_POST['descricao'] está vindo null, o formulário está com o nome correto (descricao). Mesmo copiando o código disponibilizado na aula, o erro é exibido.
Fatal error: Uncaught TypeError: Argument 1 passed to Alura\Cursos\Entity\Curso::setDescricao() must be of the type string, null given, called in C:\Users\User\gerenciador-de-cursos\src\Controller\Persistencia.php on line 30 and defined in C:\Users\User\gerenciador-de-cursos\src\Entity\Curso.php:37 Stack trace: #0 C:\Users\User\gerenciador-de-cursos\src\Controller\Persistencia.php(30): Alura\Cursos\Entity\Curso->setDescricao(NULL) #1 C:\Users\User\gerenciador-de-cursos\public\index.php(20): Alura\Cursos\Controller\Persistencia->processaRequisicao() #2 {main} thrown in C:\Users\User\gerenciador-de-cursos\src\Entity\Curso.php on line 37
<?php
namespace Alura\Cursos\Controller;
use Alura\Cursos\Entity\Curso;
use Alura\Cursos\Infra\EntityManagerCreator;
class Persistencia implements InterfaceControladorRequisicao
{
private $entityManager;
public function __construct()
{
$this->entityManager = (new EntityManagerCreator())->getEntityManager();
}
public function processaRequisicao(): void
{
$curso = new Curso();
$curso->setDescricao($_POST['descricao']);
$this->entityManager->persist($curso);
$this->entityManager->flush();
}
}