2013-02-11 52 views
3

这是我的问题: 实体通讯录1-N实体数Symfony2中一直存在相关对象

控制器显示与地址簿和其编号的编辑形式,但是当我保存的形式,我得到此错误: 致命错误:非对象上调用一个成员函数setTipo()

奇怪的是,然而,该数据被正确保存

这是我的代码:

​​
+0

安置自己的实体请 – Squazic 2013-02-11 15:26:39

+3

你的问题是,该行'$ dettaglio = $ EM-> getRepository( 'MercurioInterfaceBundle:AnagDettaglio') - > findBy(array('anagrafica_id'=> $ id,));'没有返回一个对象 - 它可能没有返回任何内容 - 检查你的实体以确保该字段存在并检查数据库以确保你的搜索记录存在 – ManseUK 2013-02-11 15:35:08

+1

基本上它应该是$ dettaglio = $ em-> getRepository('MercurioInterfaceBundle:AnagDettaglio') - > findOneBy(ar ray('anagrafica_id'=> $ id,))否则它将返回Collection而不是单个对象。 – l3l0 2013-02-11 20:44:02

回答

0

解决:

$form = $this->createForm(new \Mercurio\InterfaceBundle\Form\Anagrafica\FormAnagrafica(),$anagrafica); 
if ($request->isMethod('POST')){ 
    $form->bind($request); 

    if ($form->isValid()) { 
    $em->persist($anagrafica); 
    $em->flush(); 
    return $this->redirect(....) 
    } 
}