如何在表单上显示和编辑用户实体[symfony2]的角色集合?

时间:2013-07-21 14:50:08

标签: select symfony collections roles

我有一个'用户'实体,其中包含一个'角色'实体。

控制器代码:

/**
     *  @Route("/root/users/edit/{id}", requirements={"id" = "\d+"})
     *  @Method({"GET", "POST"})
     */
    public function usersEditAction(Request $request, User $user)
    {
        $form = $this->createFormBuilder($user)
            ->add('username', 'text')
            ->add('role', 'entity', array( 'class' => 'Lan\CsmBundle\Entity\Role', 'property' => 'role'))
            ->add('id', 'hidden')
            ->getForm();

        if ($request->isMethod('POST'))
        {
            $form->submit($request);

            if ($form->isValid())
            {
                $em = $this->getDoctrine()->getManager();
                $em->flush();

                return $this->redirect($this->generateUrl('root_users'));
            }
        }

        return $this->render('CsmBundle:Root:users_edit.html.twig', array(
                'form' => $form->createView()
            ));
    }

此代码使用一个角色编辑“用户”对象,并在HTML表单上将“角色”对象显示为“选择”。

现在,我已经改变了db的方案,'User'可能有很多'Role'。在表单上,​​它可以显示为具有多个属性的“选择”。但我不知道如何在symfony2上做到这一点。

1 个答案:

答案 0 :(得分:0)

正如您所看到的,Entity type具有multiple属性。所以你可以添加它。