如何使用表单在DB中设置布尔变量?

时间:2014-03-12 08:06:39

标签: php forms symfony entity

我有一个名为User的课程,在那里我可以找到Nameemail等属性,... 另外,我有一个Membership课程,与User课程和Community课程相关,该课程有banish列。 我想在表单(选择字段)中显示来自User的名称,并为所选用户将布尔banish属性设置为true。我正在做下一个($page['community']Community实体)。

    $form = $this->createFormBuilder()
        ->add('banish', 'entity', array(
            'label' => $this->trans("Usuarios a expulsar"),
            'class' => 'Pro\MembershipBundle\Entity\Membership',
            'query_builder' => function(EntityRepository $er) use ($page){
                return $er->createQueryBuilder('membership')                             
                          ->innerjoin('Pro\UserBundle\Entity\User', 'u', 'WITH', 'membership.user = u')
                          ->where( 'membership.community = :community')
                    ->setParameter('community', $page['community']);
                },

        ))
        ->getForm(); 



    if ($this->getRequest()->isMethod('post') && $this->getRequest('form_id') == 'banish') {
        if ($form->bind($this->getRequest())->isValid()) {

            $this->getEntityManager()->flush();

            return $this->redirect($this->getRequest()->getUri() . '#preferences');
        }
    }
    $return['banishForm'] = $form->createView();

    //

    return $return;

和视图:

    <h2 id="banish">{{ "Expulsar miembros" | trans }}</h2>

    <form method="post">
        <input type="hidden" name="form_id" value="banish">
        {{ form_widget(banishForm) }}
        <input type="submit" class="btn" value="{{ "Guardar" | trans }}">
    </form>

这似乎工作正常。但是,当我选择用户并提交表单时,所选banish的{​​{1}}列未设置为Membership。有些东西我不见了,但我不知道是什么。

1 个答案:

答案 0 :(得分:0)

在您的用户类中,您是否有级联设置?您需要与成员类关系的下面一行(然后链接到社区类)。

/**
 * @ORM\OneToOne(targetEntity="Membership", mappedBy="user", cascade={"all"})
 */
protected $membership