gpt4 book ai didi

php - 无法使用 symfony 和 doctrine 及其关联对象或表保存到 postgresql 中?

转载 作者:行者123 更新时间:2023-11-29 13:47:44 25 4
gpt4 key购买 nike

我必须使用 ticket_attachmentsticket_commentsticket_status_history 保存一张 ticket。我将只保留 ticket 对象,但想保存附件、评论和历史记录。我正在使用 Doctrine 、symfony 和注释。

我在 ticket 中使用 mappedBy 和级联移除并持久化创建了 3 个数组集合。并在附件、评论和历史记录中使用了 inversedBy。但在持久化和刷新后,只有 ticket 被保存,但其他对象,即附件、评论和历史记录没有保存。但显示无错误

Ticket.php

/**
* @ORM\OneToMany(targetEntity="AppBundle\Entity\TicketAttachments", mappedBy="ticket", cascade={"persist", "remove"})
*/
private $attachments;

/**
* @ORM\OneToMany(targetEntity="AppBundle\Entity\TicketComments", mappedBy="ticket", cascade={"persist", "remove"})
*/
private $comments;

/**
* @ORM\OneToMany(targetEntity="AppBundle\Entity\TicketStatusHistory", mappedBy="ticket", cascade={"persist", "remove"})
*/
private $historys;

public function __construct()
{
$this->attachments = new ArrayCollection();
$this->comments = new ArrayCollection();
$this->historys = new ArrayCollection();
}

历史、评论和附件.php

/**
* @var \AppBundle\Entity\Ticket
*
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\Ticket", inversedBy="historys")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="ticket_id", referencedColumnName="id")
* })
*/
private $ticket;

都有它的 setter 和 getter。问题出在哪里?

最佳答案

你要把它们互相设置吗?如:

public function addToHistories($history) {
$this->historys[] = $history;
$history->setTicket($this);
}

它们必须在 setter 中相互关联(或以其他方式)才能使级联持续工作。

关于php - 无法使用 symfony 和 doctrine 及其关联对象或表保存到 postgresql 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45678126/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com