提问人:sofiane 提问时间:11/16/2023 最后编辑:JoSStesofiane 更新时间:11/16/2023 访问量:23
|调试 |SECURI Authenticator 不支持请求 [已关闭]
|DEBUG | SECURI Authenticator does not support the request [closed]
问:
当我尝试在我的项目上注册时,我没有被重定向到我在注册控制器中放置的路由,我不知道为什么
注册控制器:
<?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(),
]);
}
}
我尝试了很多方法,但没有找到解决问题的方法。因此,如果有人遇到同样的问题,很乐意帮助我
答: 暂无答案
评论
the problems
...究竟有什么问题?我认为你的标题暗示了这一点,但没有进一步解释当你运行代码时实际发生的情况。另请参阅“如何提问”和相关文章以获取更多指导。