1

1 つの「ロール」エンティティを含む「ユーザー」エンティティがありました。

コントローラーコード:

/**
     *  @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()
            ));
    }

このコードは、1 つのロールを持つ 'User' オブジェクトを編集し、'Role' オブジェクトは HTML フォーム上で 'select' として表示されました。

今、私はデータベースのスキームを変更しました。「ユーザー」は多くの「ロール」を持つ可能性があります。フォーム上では、複数の属性を持つ「select」として表示できます。しかし、symfony2 でそれを行う本当の方法がわかりません。

4

1 に答える 1

0

ご覧のとおり、エンティティ型には複数のプロパティがあります。だからあなたはそれを追加することができます。

于 2013-07-21T17:45:02.817 に答える