这是我的问题:我上面有3个实体Item,User和Link(这些类也有通常的getter和setter)。
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;
//...
}
由于Link类中的$ time属性,我没有使用ManyToMany关系。
当我创建链接时,我这样做:
$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时,链接将不会被加载。
知道没有加载链接实体的原因吗?
答案 0 :(得分:0)
确定问题已解决。
注释在User和Item类中以/ *而不是/ **开头。
只是一个愚蠢的错误......