0
協會映射我有兩個實體:與學說
用戶和 評論
每一個評論只能有一個用戶,但用戶可以有多個評論。
我不確定是否要使用biderectional,單向連接表或自引用。
我只希望在調用註釋對象時應用此關係。如果我在某處調用一個用戶對象,我不想讓一堆評論對象淹沒用戶對象。我應該採取哪種方法?
協會映射我有兩個實體:與學說
用戶和 評論
每一個評論只能有一個用戶,但用戶可以有多個評論。
我不確定是否要使用biderectional,單向連接表或自引用。
我只希望在調用註釋對象時應用此關係。如果我在某處調用一個用戶對象,我不想讓一堆評論對象淹沒用戶對象。我應該採取哪種方法?
的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;
}
使用許多的評論對象 –
內的一個單向的關係這是沒有實際意義,你不會得到一堆評論的對象,除非您特別調用User-> getComments()或使用存儲庫方法,並在其中加入並特別請求註釋。 Symfony/Doctrine在默認情況下會延遲加載關聯,並且會一直處於急切加載(至少在2.3)的一對一關係的警告。 – Richard