2011-08-17 6 views
0

私はdoctrine 2.0を使用しており、スキーマに基づいてエンティティを作成しています。Doctrine 2.0 - 追加中の問題

私はメッセージに2つのエンティティのメッセージおよびユーザー

ユーザーIDがユーザーにIDにリンクされています。

私はメッセージ私はinsetingながらから設定することができますどのように実体

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

にこのような何かを持ってエンティティを作成した。..

私は以下

のような行

を挿入しようとしました

$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を入力してください。

答えて

2

UserDetailsオブジェクトを参照または作成し、そのIDに対応するオブジェクトをsetFromの引数として使用する必要があります。

1

Danが言ったように、オブジェクトインスタンスを渡す必要があります。例: `` $から=の$ this - > EM-> getReference( 'UserDetails'、[ 'から'](INT)$ VARS):

$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

はまた、あなたはそうのような参照を使用することができます – rojoca