symfony5无法在课堂上读取属性“tipoinvitado”

我需要选择用户并选择一个角色,但是当我添加角色时,我失败了:

无法读取类“AppEntityEvento”中的属性“tipoinvitado”。

te 财产“tipoinvitado”在其他实体上有

控制器

  public function a(Request $request, Evento $evento){
        $user_repo = $this->getDoctrine()->getRepository(User::class);
        $users = $user_repo->findAll();    

        $evento = $this->getDoctrine()->getRepository(Evento::class)->findOneById($evento); 
        $form = $this->createForm(AsignarEventoFormType::class, $evento);
        $form->handleRequest($request);
        
        if($form->isSubmitted() && $form->isValid()){
            $users = $evento->GetUsers();
                foreach($users as $user){

                $formulario = $form->get("tipoinvitado")->getData();
                $userhasevento = new UserHasEvento();
                $userhasevento->SetTipoinvitado($formulario);
                $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('evento_detalle', ['id' => $evento->getId()]));
 
        }        
        return $this->render('evento/AsignarEvento.html.twig',[
            'form' => $form->createView()
        ]);
    }

我的表格

use AppEntityUser;

class AsignarEventoFormType extends AbstractType{
    
    public function buildForm(FormBuilderInterface $builder, array $options){
        $builder->add('Users', EntityType::class, [
            'class' => User::class,
            'multiple' => true,

        ])

        ->add('tipoinvitado', ChoiceType::class, array(
            'label' => 'Prioridad',
            'choices' => array(
                'VIP' => 'VIP',
                'Empresa' => 'Empresa'
            )
        ))

        ->add('submit', SubmitType::class, array(
            'label' => 'Asignar'
        ));
    }
    
}```

回答

tipoinvitado不是 的属性Evento。如果您想添加不是表单数据类属性的表单字段,只需将其添加'mapped' => false到您的字段中即可。

->add('tipoinvitado', ChoiceType::class, array(
            'label' => 'Prioridad',
            'mapped' => false,
            'choices' => array(
                'VIP' => 'VIP',
                'Empresa' => 'Empresa'
            )
        ))


以上是symfony5无法在课堂上读取属性“tipoinvitado”的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>