当我使用此代码时,我有这个错误" 完整性约束违规:1048列' ecriture_id'不能为空" :
$produit = new Produit();
$ecriture = new Ecriture();
$produit->setEcriture($ecriture);
// $this->em->persist($ecriture);
$this->em->persist($produit);
如果我取消注释" $ this-> em-> persist($ ecriture) "它的工作正常。
我不明白,因为我的" 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;
}
实体" 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 :(得分:0)
当我向数据库中添加新列时,我总是遇到类似问题,并且让你知道不能为空错误。
对我来说最重要的是添加nullable是真的,然后在twig,controller或form中添加required = true属性。因此,它总是必须被填补。