2016-09-23 122 views
-2

當我使用此代碼,我有這樣的錯誤「完整性約束違規:1048列‘ecriture_id’不能爲空」:堅持實體:不能爲空

如果我註釋掉「$ this-> em-> persist($ ecriture)「這是行得通的。

我不明白,因爲我的 「Produit」 實體具有級聯堅持

實體 「Produit」:

class Produit 
{ 
    /** 
    * @ORM\OneToOne(targetEntity="LogicielBundle\Entity\Ecriture", inversedBy="gestionLocativeProduit", cascade={"persist"}) 
    * @ORM\JoinColumn(nullable=false) 
    */ 
    private $ecriture; 

    public function setEcriture(\LogicielBundle\Entity\Ecriture $ecriture) 
    { 
     $ecriture->setGestionLocativeProduit($this); 
     $this->ecriture = $ecriture; 
     // Similar problem if I add "$ecriture->setGestionLocativeProduit($this);" right here 
     return $this; 
    } 

    public function getEcriture() 
    { 
     return $this->ecriture; 
    } 

實體 「的書寫理論」:

class Ecriture 
{ 
    /** 
    * @ORM\OneToOne(targetEntity="LogicielBundle\Entity\GestionLocative\Produit", mappedBy="ecriture") 
    * @ORM\JoinColumn(nullable=true) 
    */ 
    private $gestionLocativeProduit; 

    public function setGestionLocativeProduit(\LogicielBundle\Entity\GestionLocative\Produit $gestionLocativeProduit) 
    { 
     $this->gestionLocativeProduit = $gestionLocativeProduit; 
     return $this; 
    } 

    public function getGestionLocativeProduit() 
    { 
     return $this->gestionLocativeProduit; 
    } 

回答

0

我一直有similair問題whe ñ我添加了新的列到我的數據庫,並騙你不能是空錯誤。

對我來說最主要的解決方法是添加nullable爲true,然後在樹枝,控制器或表單中添加required = true屬性。因此它總是被填滿。