我有两个实体:
用户和 评论
每个评论只能有一个用户,但用户可以有多个评论。
我不确定是否要使用双向,单向连接表或自引用。
我只想在调用comment对象时应用这种关系。如果我在某处调用用户对象,我不希望一堆注释对象充斥用户对象。我应该采取哪种方法?
答案 0 :(得分:0)
Symfony的文档很好地解释了这个过程:http://symfony.com/doc/current/book/doctrine.html#fetching-related-objects
重要的是你可以轻松访问 产品的相关类别,但实际上并不是类别数据 检索,直到你要求类别(即它是“懒惰加载”)。
只需建立一个ManyToOne关系,只在需要时获取用户的评论。
User
实体:
<?php
class User
{
// ...
/**
* @ORM\OneToMany(targetEntity="Comment", mappedBy="author")
*/
protected $comments;
public function __construct()
{
$this->comments = new ArrayCollection();
}
}
Comment
实体:
<?php
class Comment
{
// ...
/**
* @ORM\ManyToOne(targetEntity="User", inversedBy="comments")
* @ORM\JoinColumn(name="user_id", referencedColumnName="id")
*/
protected $author;
}