2016-09-23 52 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属性。因此它总是被填满。