如何设置一个布尔变量在DB使用的形式


How to set a boolean variable in the DB using form?

我有一个名为User的类,在那里我可以找到像Name, email,…我也有一个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>

这似乎工作良好。但是,当我选择一个用户并提交表单时,从Membership中选择的banish列没有设置为true。我错过了一些东西,但我不知道是什么。

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

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