Вот моя проблема: у меня есть 3 сущности Item, User и Link выше (эти классы также имеют обычные геттеры и сеттеры).
class User {
//...
/*
* @ORM\OneToMany(targetEntity="Link", mappedBy="user", cascade={"persist", "remove"})
*
*/
protected $links;
//...
}
class Item {
//...
/*
* @ORM\OneToMany(targetEntity="Link", mappedBy="item", cascade={"persist", "remove"})
*
*/
protected $links;
//...
}
class Link {
/**
* @var datetime $time
*
* @ORM\Column(name="time", type="datetime")
*/
private $time;
/**
*
* @ORM\Id
* @ORM\ManyToOne(targetEntity="Item", inversedBy="links")
* @ORM\JoinColumn(name="item_id", referencedColumnName="id")
*/
private $item;
/**
*
* @ORM\Id
* @ORM\ManyToOne(targetEntity="User", inversedBy="links")
* @ORM\JoinColumn(name="user_id", referencedColumnName="id")
*/
private $user;
//...
}
Я не использовалсвязь ManyToMany из-за свойства $ time в классе Link.
Когда я создаю ссылку, я делаю это следующим образом:
$link = getExistingLink($item, $user);
if (!$link) {
$link = new Link();
$link->setItem($item);
$link->setUser($user);
}
$link->setTime(new \DateTime());
$em = $this->getEntityManager();
$em->persist($link);
$em->flush();
Однако данные записываются в базу данныхкогда я вызываю $ user-> getLinks (), он возвращает NULL.Событие пыталось сделать это:
$user->addLink($link);
$em->persist($user);
$em->flush();
Но ссылка не будет загружена в следующий раз, когда будет загружен $ user.
Есть идеи, почему не загружаются объекты Link?