首先,感謝所有看過這個問題的人。 我得到了一個類似於userFormType的FormType。symfony2呈現表格的一部分
class UserFormType extends AbstractType{
public function buildForm(FormBuilder $builder, array $options)
{
$builder->add('address','collection', ....)
->add('group','entity',....)
->add('companies','collection',....);
...
}
}
所以你看我在用戶表單中有兩個集合。我創建了這個表單,並且設置了這些公司。當我想只修改公司的信息和地址,但不與羣組聯繫。所以我必須呈現用戶表單,但不是一些公司表單或地址表單。所以我寫了這樣一個控制器:
$user= $this->get('security.context')->getToken()->getUser();
$form =$this->createForm(new UserForm(),$user);
$request = $this->get('request');
if ('POST' == $request->getMethod()) {
$form->bindRequest($request);
if ($form->isValid()) {
$em = $this->getDoctrine()->getEntityManager();
$em->persist($user);
$em->flush();
....
}
}
當然,我不想修改組,所以在樹枝模板,我沒有渲染組。表單呈現正確,但每次我嘗試提交它,它告訴我:
Argument 1 passed to ... User->setGroup() must be an instance of Group ... null given
所以我問,我該怎麼辦?
如果您不想編輯它,爲什麼要將該組添加到表單中? –