2012-11-21 39 views
2

我有一個實體與OneToOne關係獲取實體代理在Doctrine2

說我創建一個新的實體和我有 ID我想涉及到它。不是對象本身,只有它的ID號

$collar = 12; 
$dog = new Dog(); 
$dog->setCollar(?); 

我需要真正從數據庫中獲取對象,只設置它的ID(這已經給出),或者是有辦法來創建一個代理對象?

+0

我想這是Doctrine2? – prodigitalson

+0

是的。 (更新後) – tamir

回答

4

是居然還有

您可以使用實體管理器獲得代理引用而不是實際的實體,只是給你代表的實體,而無需實際從數據庫中獲取其代理的對象。

檢查下面的代碼爲一個例子

$collarId = 12; 

// First param is the Entity classname, second is the Entity id 
$collar = $entityManager->getReference('Collar', $collarId); 

$dog = new Dog(); 
$dog->setCollar($colar); 

$entityManager->persist($dog); 
$entityManager->flush();