2011-08-17 179 views
0

我正在使用教義2.0並基於模式創建實體。學說2.0 - 添加時出現問題

我有兩個實體消息和用戶

用戶ID在郵件鏈接到用戶ID

當我創建的實體我有這樣的事情在郵件實體

/** 
* Set from 
* 
* @param UserDetails $from 
*/ 
public function setFrom(\UserDetails $from) 
{ 
    $this->from = $from; 
} 

我怎麼可以設置從而inseting ..

我嘗試插入一行

像下面

$message = new \Messages; 
$message->setMessage((string)$vars['message']); 
$message->setFrom((int)$vars['from']); 
$message->setTo((int)$vars['to']); 
$this->em->persist($message); 
$this->em->flush();  

我收到以下錯誤。

可捕捉的致命錯誤:傳遞給Messages :: setFrom()的參數1必須是UserDetails的實例,在第31行調用的C:\ wamp \ xxxxxxxx.php中給出的整數,並在C:\ wamp \ xxxxxxx中定義\ Entities \ Messages.php行156上。

回答

2

您需要查找或創建與該ID對應的對象UserDetails,並將其用作參數setFrom

1

你需要傳遞對象實例,就像Dan說的那樣。例如:

$from = $this->em->find('UserDetails', (int) $vars['from']); 
$to = $this->em->find('UserDetails', (int) $vars['to']); 

$message = new \Messages; 
$message->setMessage((string)$vars['message']); 
$message->setFrom($from); 
$message->setTo($to); 

$this->em->persist($message); 
$this->em->flush();  
+1

您也可以使用像這樣的引用:從= $這個 - > EM-'$> getReference( '的UserDetails',(int)的$瓦爾[ '從'])' – rojoca