Я должен спасти ticket
с ticket_attachments
,ticket_comments
а также ticket_status_history
, Я буду только настаивать ticket
объект, но хотите сохранить вложения, комментарии и историю. Я использую учение, симфонию и аннотации.
Я создал 3 коллекции массивов в ticket
с mappedBy и каскадом удалить и сохранить. И использовал 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;
У всех есть сеттер и геттер. В чем проблема?
Вы настраиваете их друг к другу? Как в:
public function addToHistories($history) {
$this->historys[] = $history;
$history->setTicket($this);
}
Они должны быть связаны друг с другом в установщиках (или каким-либо другим способом), чтобы каскад продолжал работать.
Других решений пока нет …