0
我有一個問題/理解問題。Symfony2 Formbuilder的另一個實體
我有3分貝表 用戶,用戶組和user2usergroup
外國字段: user.id => user2usergroup.user_id user2usergroup.group_id => usergroup.id
所以現在我想要生成並編輯我的用戶對象,並將其關聯到我的formbuilder。
我嘗試了一些想法並尋求幫助。
不是這是acutal狀態:
控制器:
/**
* creates user form
* @param users $entity
* @param string $sUrl
* @return Form
*/
public function createUserForm(users $entity, $sUrl){
$form = $this->createForm(new userType(), $entity, array(
'action' => $this->generateUrl($sUrl),
'method' => 'POST',
'groups' => $this->getUserGroups()
));
return $form;
}
formbuilder
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options){
$groups = $options['groups'];
$builder
->add('enabled','checkbox',array(
'required' => false))
->add('locked','checkbox',array(
'required' => false))
->add('username','text',array(
'required' => true))
->add('email','email',array(
'required' => true))
->add('password','password',array(
'required' => true))
->add('roles', 'choice', array(
'choices' => array('ROLE_ADMIN' => 'Admin', 'ROLE_USER' => 'Benutzer'),
'required' => true,
'multiple' => true
))
->add('groups','entity',array(
'class' => 'UniteUserBundle:usergroup',
'query_builder' => function(EntityRepository $er){
return $er->findAll();
},
))
->add('save','submit')
;
}
也許你可以幫我瞭解 - 如何讓所有組的形式 - 如何編輯用戶並查看他在哪個組(編輯視圖) - 我如何堅持我選擇的組ected在用戶的形式向user2usergroup
非常感謝我的朋友=)
嘿再次,我想編輯和添加與另一種形式的組。我只想添加一個用戶,並向他添加組(選擇此組)。比我想在表user2usergroup添加連接。另一個問題,我是如何獲得用戶2組的連接。 ======我錯了嗎?我應該只是將角色作爲數組添加到數據庫用戶?並且不把它寫到用戶和組之間所有連接的額外表中? – cRsakaWolf
呃第一件事第一。角色與組織無關。這是完全不同的事情。對於組和用戶之間的關係,您可以選擇manyToMany關係。 Doctine能夠自動創建並填充聯接表。看到這個例子:http://doctrine-orm.readthedocs.org/en/latest/reference/association-mapping.html#many-to-many-bidirectional並且不要忘記在註釋中@之後插入ORM \。 manyToMany會說每個用戶可以屬於多個組,每個組可以有多個用戶。不要將數組存儲到數據庫中。 –
對不起,我的意思是團體不是角色。我現在明白了。我正在使用FOSUserBundle。現在我遇到了這個問題,當我添加和編輯用戶時,如何將組持久保存到用戶。 Thansk爲你提供幫助:) – cRsakaWolf