1
resposta

Fatal error: Trait 'Alura\Cursos\Helper\FlashMessageTrait' not found in

Não estoi conseguindo utilizar o método $this->difineMensagem('$tipo','$mensagem'). apresenta o erro :

Fatal error: Trait 'Alura\Cursos\Helper\FlashMessageTrait' not found in C:\laragon\www\gerenciador-de-cursos\src\Controller\Persistencia.php on line 11.
<?

namespace Alura\Cursos\Helper;

trait FlashMessageTrait
{

    public function defineMensagem(string $tipo, string $mensagem): void
    {
        $_SESSION['mensagem'] = $mensagem;
        $_SESSION['tipo_mensagem'] = $tipo;
    }

}




?>
<?php

namespace Alura\Cursos\Controller;

use Alura\Cursos\Entity\Curso;
use Alura\Cursos\Helper\FlashMessageTrait;
use Alura\Cursos\Infra\EntityManagerCreator;

class Persistencia implements InterfaceControladorRequisicao
{
    use FlashMessageTrait;
    /**
     * @var \Doctrine\ORM\EntityManagerInterface
     */
    private $entityManager;

    public function __construct()
    {
        $this->entityManager = (new EntityManagerCreator())
            ->getEntityManager();
    }

    public function processaRequisicao(): void
    {
        $descricao = filter_input(
            INPUT_POST,
            'descricao',
            FILTER_SANITIZE_STRING);

        //echo $descricao;
        //exit();


        $quantidade = filter_input(
            INPUT_POST,
            'descricao',
            FILTER_SANITIZE_STRING);

       /* echo $descricao;
        exit();*/

        $curso = new Curso();
        $curso->setDescricao($descricao);

        $id = filter_input(
            INPUT_GET,
            'id',
            FILTER_VALIDATE_INT);


        if (!is_null($id) && $id !== false) {

            $curso->setId($id);
            $this->entityManager->merge($curso);
            $_SESSION['tipo_mensagem'] = 'success';
            $_SESSION['mensagem'] = 'O CURSO FOI Atualizado COM SUCESSO';
        }else{
            $this->entityManager->persist($curso);
            $this->defineMensagem('success', 'O Curso '.$descricao.' FOI GRAVADO COM SUCESSO');
            /*$_SESSION['tipo_mensagem'] = 'success';
            $_SESSION['mensagem'] = 'O Curso '.$descricao.' FOI GRAVADO COM SUCESSO';*/


        }

        $this->entityManager->flush();         



        header('Location: /listar-cursos', true, 302);
    }
}
1 resposta

Fala, Rafael.

Consegue colocar seu projeto no GitHub pra eu analisar com mais calma?

De cara, uma dica que não tem relação com seu problema: Não use ?>

:-)