2016-03-02 60 views
0

我有兩個簡單的實體:CabinetPersonne與「OneToOne」關係。但是當我添加內閣時,我有這個錯誤:'personne_id'列不能爲空Symfony刷新和關係:列不能爲NULL

內閣實體:

class Cabinet 
{ 

/** 
* @ORM\OneToOne(targetEntity="LogicielBundle\Entity\Personne", cascade={"persist","remove"}) 
* @ORM\JoinColumn(nullable=false) 
*/ 
private $personne; 

public function setPersonne(\LogicielBundle\Entity\Personne $personne) 
{ 
    $this->personne = $personne; 

    return $this; 
} 

public function getPersonne() 
{ 
    return $this->personne; 
} 

Personne實體:

class Personne { 

/** 
* @ORM\OneToOne(targetEntity="UtilisateurBundle\Entity\Cabinet", cascade={"persist","remove"}) 
* @ORM\JoinColumn(nullable=false) 
*/ 
private $cabinet; 

public function setCabinet(\UtilisateurBundle\Entity\Cabinet $cabinet) 
{ 
    $this->cabinet = $cabinet; 

    return $this; 
} 

public function getCabinet() 
{ 
    return $this->cabinet; 
} 

我的控制器是非常簡單的:

public function ajouterAction(Request $request) 
{ 
    $personne = new Personne(); 
    $cabinet = new Cabinet(); 

    $cabinet->setPersonne($personne); 
    $personne->setCabinet($cabinet); 

    $form = $this->createForm('utilisateur_cabinet_form', $cabinet); 
    $this->submit($form); 
    if ($form->handleRequest($request)->isValid()) { 
     $em = $this->getDoctrine()->getManager(); 
     dump($personne); 
     dump($cabinet); 
     $em->persist($cabinet); 
     $em->flush(); 
     $request->getSession()->getFlashBag()->add('success', 'Le cabinet « '.$cabinet->getVersions()[0]->getLibelle().' » a été ajouté.'); 
     return $this->redirect($this->generateUrl('utilisateur_cabinet_index')); 
    } 
    return array(
     'form' => $form->createView(), 
     'title' => 'Ajouter un nouveau cabinet' 
    ); 
} 

dump($ cabinet)ans dump($ personne)爲true;你可以幫我嗎 ?

+0

您應該顯示您的實體的ID映射信息,看看發生了什麼事情。你的'JoinColumn'定義似乎不完整,缺少* name *和* referencedColumnName *。另外,如果它是雙向關係,則應通過使用inversedBy和mappedBy指示誰是擁有者,誰是反面。 – hasumedic

回答

0

確保讓二傳手參數爲空,以及(可空=真不夠這裏):

public function setPersonne(\LogicielBundle\Entity\Personne $personne = null) 
+0

感謝@LBA,這是事實。但是,如果我不想要空數據,爲什麼是可以空的?謝謝:) –

+0

哦,對不起,我可能誤會了你 - 所以這個專欄對於協會的雙方來說肯定不是空的? – LBA

+0

請確保設置您的關聯和反面的協會:http://doctrine-orm.readthedocs.org/projects/doctrine-orm/en/latest/reference/unitofwork-associations.html – LBA