繁体   English   中英

Symfony 5 获取失败 object 未通过 @ParamConverter 注释找到

[英]Symfony 5 get fail object not found by the @ParamConverter annotation

我有一个用于在我的事件中添加用户的表单,但是当我添加用户时,我尝试在此事件中添加一个角色,但是在执行第二个 function 时我得到这个失败

@ParamConverter 注释找不到 App\Entity\Evento object。

没看到问题,谢谢

public function registro(Request $request, UserPasswordEncoderInterface $encoder, Evento $evento)
    {
        $evento = $this->getDoctrine()->getRepository(Evento::class)->findOneById($evento);
        $user = new user();
        $form = $this->createForm(RegisterUsuarioEventoType::class, $user);
        //rellenar el objeto con los datos del formulario
        $form->handleRequest($request);
        //comprobando si el formulario se ha enviado
        if($form->isSubmitted() && $form->isValid()){
            //modificando objeto para guardarlo
            $user->setRole('ROLE_USER');
            $user->setFecha(new \DateTime('now'));
            $encoded = $encoder->encodePassword($user, $user->getPassword());
            $user->setPassword($encoded);
            $user->addEvento($evento); 
            $evento->addUser($user);
            $em = $this->getDoctrine()->getManager();
            $em->persist($user);
            $em->flush();
            return $this->redirect($this->generateUrl('registro2', ['id' => $user->getId()]));
        }
        return $this->render('evento/register-evento.html.twig', [
            'form' => $form->createView()
        ]);
    }

我的第二个 function 在第一个刷新我的数据库时执行,

    public function registro2(Request $request, Evento $evento)
    {
        $userhasevento = new UserHasEvento();
        $form = $this->createForm(RegisterUsuarioEvento2Type::class, $userhasevento);
        $form->handleRequest($request);        
        if($form->isSubmitted() && $form->isValid()){
            $contactFormData = $form->getData();

            $userhasevento->SetTipoinvitado($contactFormData['tipo'],'text/plain');
            $userhasevento->SetFechainscripcion(new \DateTime('now'));
            $userhasevento->SetEventoid($evento->getId());
            $userhasevento->SetUserid($user->getId());

            $em = $this->getDoctrine()->getManager();
            $em->persist($userhasevento);
            $em->flush();
            
            return $this->redirect($this->generateUrl('detalle', ['id' => $evento->getId()]));
 
        }        

        return $this->render('evento/AsignarEvento.html.twig', array(
            'UserHasEvento' => $userhasevento,
            'form' => $form->createView()
        ));
}

路线:


registro:
    path: /registroEvento/{id}
    controller: App\Controller\EventoController::registro    

registro2:
    path: /registroEvento/tipo-invitado/{id}
    controller: App\Controller\EventoController::registro2    

内部登记处

return $this->redirect($this->generateUrl('registro2', ['id' => $user->getId()]));

应该改为

return $this->redirect($this->generateUrl('registro2', ['id' => $evento->getId()]));

或者你应该改变

public function registro2(Request $request, Evento $evento)

public function registro2(Request $request, User $user)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM