我有一个名为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>
这似乎工作正常。但是,当我选择用户并提交表单时,所选banish
的{{1}}列未设置为Membership
。有些东西我不见了,但我不知道是什么。
答案 0 :(得分:0)
在您的用户类中,您是否有级联设置?您需要与成员类关系的下面一行(然后链接到社区类)。
/**
* @ORM\OneToOne(targetEntity="Membership", mappedBy="user", cascade={"all"})
*/
protected $membership