|调试 |SECURI Authenticator 不支持请求 [已关闭]

|DEBUG | SECURI Authenticator does not support the request [closed]

提问人:sofiane 提问时间:11/16/2023 最后编辑:JoSStesofiane 更新时间:11/16/2023 访问量:23

问:


想改进这个问题吗?通过编辑这篇文章添加详细信息并澄清问题。

3天前关闭。

当我尝试在我的项目上注册时,我没有被重定向到我在注册控制器中放置的路由,我不知道为什么

注册控制器:

<?php

namespace App\Controller;


use App\Entity\User;
use App\Form\RegistrationFormType;
use App\Service\EmailService;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Form\FormError;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
use Symfony\Component\Routing\Annotation\Route;

class RegistrationController extends AbstractController
{
    #[Route('/inscription', name: 'app_register')]
    public function register(Request $request, UserPasswordHasherInterface $userPasswordHasher, EntityManagerInterface $entityManager, EmailService $emailService): Response
     {
        // création d'un user lors de l'inscription et attribution du role apprenant
        $user = new User();
        $user->setRoles(['ROLE_APPRENANT']);

        // création du formualire avec l'objet user et soumission avec la requete http
        $form = $this->createForm(RegistrationFormType::class, $user);
        $form->handleRequest($request);

        // si mon formulaire est soumis et valide : je récupére le mdp et la confirmation du mdp et la promo
        if ($form->isSubmitted() && $form->isValid()) {
            $plainPassword = $form->get('plainPassword')->getData();
            $confirmedPassword = $form->get('confirmedPassword')->getData();

            // condition : si les deux mdp sont différents : j'affiche une erreur avec le message
            if ($plainPassword !== $confirmedPassword) {
                $form->get('confirmedPassword')->addError(new FormError('Le mot de passe doit être identique'));
            } else {
                // récupère le mdp et le hashe
                $user->setPassword(
                    $userPasswordHasher->hashPassword(
                        $user,
                        $plainPassword
                    )
                );

                // préparation de la requête et envoi de la requête
                $entityManager->persist($user);
                $entityManager->flush();

                // do anything else you need here, like send an email
                // appelle de la fonction email service afin d'envoyer un mail automatique lors de l'inscription
                $emailService->envois($user->getEmail());
                var_dump('Registration successful!');
                return $this->redirectToRoute('app_home');
            }
            
        }

        // ...

        return $this->render('registration/register.html.twig', [
            'registrationForm' => $form->createView(),
        ]);
    }
}

这是我的 RGPDController:

<?php

namespace App\Controller;

use App\Entity\Apprenant;
use App\Entity\User;
use App\Form\RGPDType;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\Form\FormError;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;

class RGPDController extends AbstractController
{
    // #[Route('/r/g/p/d', name: 'app_rgpd')]
    #[Route('/rgpd', name: 'app_rgpd')]
    public function rgpdValidation(Request $request, EntityManagerInterface $entityManager): Response {
        // Aprés l'inscription, je récupére le user 
        $user = $this->getUser();

        // condition : verifie si user est bien une instance de la classe user sinon il le redirige vers la page inscription
        if (!$user instanceof User) {
            return $this->redirectToRoute('app_register');
        }

        // recupére apprenant associé à l'user
        $apprenant = $user->getApprenant();

        // création du formulaire et soumission
        $form = $this->createForm(RGPDType::class);
        $form->handleRequest($request);

        // si le formulaire est valide et soumis : l'apprenant consent au réglement
        if ($form->isSubmitted() && $form->isValid()) {
            if ($apprenant instanceof Apprenant && $form->get('consentement')->getData() === true) {
                $apprenant->setConsentement(true);

                // préparation de la requête et envoit de la requête
                $entityManager->persist($apprenant);
                $entityManager->persist($user);
                $entityManager->flush();

                // Redirige vers le formulaire commun si le consentement est true
                return $this->redirectToRoute('app_formulaire_commun');
            }
        } elseif ($apprenant instanceof Apprenant && $form->get('consentement')->getData() === false) {
            $form->get('consentement')->addError(new FormError('Vous devez valider le règlement RGPD afin de pouvoir continuer'));
        }

        return $this->render('rgpd/index.html.twig', [
            'controller_name' => 'RGPDController',
            'form' => $form->createView(),
        ]);
    }
}

我尝试了很多方法,但没有找到解决问题的方法。因此,如果有人遇到同样的问题,很乐意帮助我

PHP symfony 注册

评论

1赞 JoSSte 11/16/2023
你能试着像你不是作者一样阅读你自己的问题,并在编辑中添加更多信息吗?你“尝试了一切”——到底是什么?您必须进行什么样的设置才能重新路由?您使用的是哪种类型的网络服务器?你期望发生什么 - 确切地说
0赞 ADyson 11/16/2023
the problems...究竟有什么问题?我认为你的标题暗示了这一点,但没有进一步解释当你运行代码时实际发生的情况。另请参阅“如何提问”和相关文章以获取更多指导。

答: 暂无答案