亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Doctrine 3 不創建外鍵 - PDOException:“列 'tour_id' 不能為空”

Doctrine 3 不創建外鍵 - PDOException:“列 'tour_id' 不能為空”

PHP
搖曳的薔薇 2021-10-15 15:32:24
我正在嘗試在數據庫中插入一條新記錄。我有兩張桌子bootstrap_tour和bootstrap_tour_step.id的boostrap_tour表外鍵tour_id的bootstrap_tour_step表。對應的實體如下所示:BootstrapTour.php/** * @var int * * @ORM\Column(name="id", type="integer", options={"unsigned"=true}) * @ORM\Id * * @JMS\Groups({"auth_read_postbootstraptours"}) * @JMS\Type("integer") * @JMS\Accessor(getter="getId") */protected $id;/** * @var ArrayCollection[BootstrapTourStep] * * @ORM\OneToMany(targetEntity="BootstrapTourStep", mappedBy="bootstrapTour", cascade={"persist"}) * * @JMS\Groups({"auth_read_postbootstraptours"}) */private $bootstrapTourSteps;/** * Object instantiation. */public function __construct(){    parent::__construct();    $this->bootstrapTourSteps = new ArrayCollection();}/** * Sets a collection of BootstrapTourStep objects. * * @param ArrayCollection|null $bootstrapTourSteps * * @return BootstrapTour */public function setBootstrapTourSteps(?ArrayCollection $bootstrapTourSteps): BootstrapTour{    $this->bootstrapTourSteps = $bootstrapTourSteps;    return $this;}/** * Returns a collection of BootstrapTourStep objects. * * @return Collection[BootstrapTourStep]|null */public function getBootstrapTourSteps(): ?Collection{    return $this->bootstrapTourSteps;}/** * Adds a Step to the tour. * * @return BootstrapTour */public function addBootstrapTourStep(BootstrapTourStep $bootstrapTourStep): BootstrapTour{    $bootstrapTourStep->setBootstrapTour($this);    $this->bootstrapTourSteps[] = $bootstrapTourStep;    return $this;}
查看完整描述

1 回答

?
阿波羅的戰車

TA貢獻1862條經驗 獲得超6個贊

添加步驟集合時,您沒有在步驟上設置與游覽的關系。這樣,步驟實體被添加到游覽中,但步驟本身不知道它們屬于哪個游覽。


如果現在學說試圖堅持這些步驟,他們對巡演的引用丟失了,因此您會得到丟失的tour_id異常。


這個 ...


public function setBootstrapTourSteps(?ArrayCollection $bootstrapTourSteps): BootstrapTour

{

    $this->bootstrapTourSteps = $bootstrapTourSteps;


    return $this;

}

... 應該:


public function setBootstrapTourSteps(?ArrayCollection $bootstrapTourSteps): BootstrapTour

{

    $this->bootstrapTourSteps = new ArrayCollection();

    foreach ($bootstrapTourSteps as $step) {

      $step->setBootstrapTour($this);

      $this->bootstrapTourSteps->add($step);

    }


    return $this;

}


查看完整回答
反對 回復 2021-10-15
  • 1 回答
  • 0 關注
  • 123 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號