2013-02-06 141 views
1

假設我們有幾個表:table_item,table_category,table_items_status。 服務以單一模式(無關係)使用自己的實體進行更新。Symfony2,Doctrine,空關聯實體

我可以,以及如何創建將有此表只relatioship,例如像一個實體....

** 
* @ORM\OneToOne(targetEntity="table_item") 
* @ORM\JoinColumn(name="itemID", referencedColumnName="itemID") 
** 
private $tableItemIDByItemID 
// ... getter\setter 

** 
* @ORM\Column(type="integer") 
** 
private $itemID; 
// ... getter\setter 

PHP代碼中,我想簡單地調用

$entity->setItemID(123); 
$result = $entity->getTableItemIDByItemID(); 

然後按itemID從table_item中獲取ArrayCollection()。

我主要想要創建額外的實體只與幾個表的關係,只有單向。我需要這個創建實體而不接觸另一個關係。

+0

像這樣的事情? http://stackoverflow.com/questions/12597786/symfony-1-4-doctrine-many-to-many-relationship-with-extra-field-in-intermediat –

+0

不,沒有形式,我需要新的實體這將在數​​據庫中沒有現有表,但與其他表有關係,可以將其命名爲「構造函數」,它是......我們調用$ this-> setItemID(),然後調用關係方法$ this-> getItemIDByItemID()並通過設置的itemID獲得arraycollection .... – user1954544

回答

0

您應該查看實體存儲庫。這些提供了一些基本的功能查詢,但您可以使用您自己的自定義查詢來擴展它們(例如:getItemIDByItemID)。它被稱爲存儲庫模式。實體只是數據庫的對象表示。

Symfony2的手冊:

「這是一個好主意,以創建一個自定義庫類的實體,並與您的查詢邏輯添加方法在那裏。」

有關存儲庫的一些詳細信息:

http://symfony.com/doc/current/book/doctrine.html#custom-repository-classes http://www.zalas.eu/doctrine2-and-symfony2

相關問題