Doctrine orm 持久化实体:不能为空
使用此代码时,出现以下错误“完整性约束冲突:1048列'ecriture_id'不能为null”: 如果我取消注释“$this->em->persist($ecriture)”这是真的 我不明白,因为我的“Produit”实体有一个cascade persist: 实体“产品”:Doctrine orm 持久化实体:不能为空,doctrine-orm,doctrine,symfony,Doctrine Orm,Doctrine,Symfony,使用此代码时,出现以下错误“完整性约束冲突:1048列'ecriture_id'不能为null”: 如果我取消注释“$this->em->persist($ecriture)”这是真的 我不明白,因为我的“Produit”实体有一个cascade persist: 实体“产品”: class Produit { /** * @ORM\OneToOne(targetEntity="LogicielBundle\Entity\Ecriture", inversedBy="gesti
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;
}
实体“Ecriture”:
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;
}
当我向数据库中添加新列时,我总是遇到类似的问题,并告诉您不能为空错误 对我来说,最主要的修复方法是添加nullable is true,然后在twig、controller或form中添加required=true属性。因此,它总是必须被填满