Resolvi o problema descrito acima, entretanto estou com outro no qual diz que estou passando um valor null quando vou dar um persist para cadastrar o usuario.
o meu controller CadastrarUsuario está abaixo:
<?php
namespace Erick\Sistema\Controller;
use Nyholm\Psr7\Response;
use Erick\Sistema\Entity\Usuario;
use Psr\Http\Message\ResponseInterface;
use Doctrine\ORM\EntityManagerInterface;
use Erick\Sistema\Helper\FlashMessageTrait;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
class CadastrarUsuario implements RequestHandlerInterface
{
use FlashMessageTrait;
public function __construct(EntityManagerInterface $entityManager)
{
$this->repositorioDeUsuarios = $entityManager
->getRepository(Usuario::class);
}
public function handle(ServerRequestInterface $request): ResponseInterface
{
$redirecionamentoCadastro = new Response(302, ['Location' => '/cadastro']);
$usuario = new Usuario();
$email = filter_input(
INPUT_POST,
'email',
FILTER_VALIDATE_EMAIL
);
$senha = filter_input(
INPUT_POST,
'senha',
FILTER_SANITIZE_SPECIAL_CHARS
);
$senha2 = filter_input(
INPUT_POST,
'senha2',
FILTER_SANITIZE_SPECIAL_CHARS
);
$encontraEmail = $this->repositorioDeUsuarios->findOneBy(['email' => $email]);
if(!is_null($encontraEmail)){
$this->defineMensagem('danger', 'E-mail já está cadastrado');
return $redirecionamentoCadastro;
}
if(strlen(trim($senha)) < 6 && strlen(trim($senha2)) < 6 ){
$this->defineMensagem('danger', 'Insira uma senha maior que 6 digitos');
return $redirecionamentoCadastro;
}
if($senha !== $senha2){
$this->defineMensagem('danger', 'As senhas não são iguais');
return $redirecionamentoCadastro;
}
$usuario->setEmail($email);
$senha = password_hash($senha, PASSWORD_ARGON2I); //Criptografando senha
$usuario->setSenha($senha);
$this->entityManager->persist($usuario);
$this->entityManager->flush();
$this->defineMensagem('sucess', 'Usuario criado com sucesso');
return $redirecionamentoCadastro;
}
}
o erro que retorna:
Warning: Undefined property: Erick\Sistema\Controller\CadastrarUsuario::$entityManager in C:\Users\erick.dias\Documents\Project-Training\src\Controller\CadastrarUsuario.php on line 73
Fatal error: Uncaught Error: Call to a member function persist() on null in C:\Users\erick.dias\Documents\Project-Training\src\Controller\CadastrarUsuario.php:73 Stack trace: #0 C:\Users\erick.dias\Documents\Project-Training\public\index.php(45): Erick\Sistema\Controller\CadastrarUsuario->handle(Object(Nyholm\Psr7\ServerRequest)) #1 {main} thrown in C:\Users\erick.dias\Documents\Project-Training\src\Controller\CadastrarUsuario.php on line 73