我有一个名为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