2011-08-17 4 views
0

doctrine 2.0을 사용하고 있으며 스키마를 기반으로 엔티티를 만들었습니다.Doctrine 2.0 - 추가하는 동안 문제가 발생했습니다.

나는 두 엔티티 메시지 및 사용자

메시지에 사용자 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();  

다음 오류가 발생합니다.

Catchable fatal error : Messages :: setFrom()에 전달 된 인수 1은 UserDetails의 인스턴스 여야하며, 31 번째 줄에 C : \ wamp \ xxxxxxxx.php로 호출되고 C : \ wamp \ xxxxxxx에 정의 된 정수 여야합니다. \ Entities \ Messages.php에 입력하십시오.

답변

2

해당 ID에 해당하는 UserDetails 개체를 찾아 보거나 작성하여 setFrom의 인수로 사용하십시오.

1

Dan이 말한 것처럼 객체 인스턴스를 전달해야합니다. 예를 들어>의 getReference ('의 UserDetails'(INT)을 $ 바르 [ '에서'를]) '= $ this-> 보하기에서'$ :

$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

관련 문제