我在symfony 2中有一个问题。当我尝试在具有外键的表(Sinedries)中插入新行时,我得到错误列'kod_pelati'不能为空。 主表“Pelates”:
/**
* @ORM\OneToMany(targetEntity="Sinedries", mappedBy="pelates")
*/
private $sinedries;
public function __construct()
{
$this->sinedries = new ArrayCollection();
}
详细信息表实体“Sinedries”:
/**
* @var integer
*
* @ORM\Column(name="kodikos", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $kodikos;
/**
* @var integer
*
* @ORM\Column(name="kod_pelati", type="integer")
*/
private $kodPelati;
.....
/**
* Set kodPelati
*
* @param integer $kodPelati
* @return Sinedries
*/
public function setKodPelati($kodPelati)
{
$this->kodPelati = $kodPelati;
return $this;
}
/**
* Get kodPelati
*
* @return integer
*/
public function getKodPelati()
{
return $this->kodPelati;
}
...
/**
* @ORM\ManyToOne(targetEntity="Pelates", inversedBy="sinedries")
* @ORM\JoinColumn(name="kod_pelati", referencedColumnName="kodikos", onDelete="CASCADE")
*/
private $pelates;
控制器:
$sinedria = new Sinedries();
$sinedria->setKodPelati($idPelati);
$em = $this->getDoctrine()->getManager();
$form = $this->createForm(new SinedriesType(), $sinedria);
$form->handleRequest($request);
if ($form->isValid()) {
// perform some action, such as saving the task to the database
$em->persist($sinedria);
$em->flush();
我尝试了没有形式,但发生了同样的问题。另外一个类似的控制器与更新语句工作正常。 你有什么建议吗? 谢谢。
答案 0 :(得分:0)
尝试将nullable = true添加到您的加入列
http://docs.doctrine-project.org/en/2.0.x/reference/annotations-reference.html#annref-joincolumn