2012-07-13 3 views
4

나는이 오류가 계속 :Symfony2 : 객체가 있더라도 비 객체의 getId() 멤버 함수를 호출 하시겠습니까?

/* ... */ 
    $em = $this->getDoctrine()->getEntityManager(); 
    $movie = $em->getRepository('MyMyBundle:Movie')->findMovieByName('moviename'); // Repository Class 
    \Doctrine\Common\Util\Debug::dump($movie); // dumps the object just fine! The Repository found it 
    echo $movie->getId(); // brings me the error nevertheless 

치명적인 오류 : (나는 getId이에 ... 라인에 ...

가 아닌 객체() 멤버 함수의 getId에 문의) 내 엔티티의 메소드. 이고 개체인데 다른 방법도 작동하지 않습니다!

..... array(1) { [0]=> object(stdClass)#759 (59) { ["__CLASS__"]=> string(..... 

어떤 힌트 :

객체는 같은 싣는다?

+1

맞춤 엔터티 저장소를 사용하고 있습니까? 그렇다면'findMovieByName' 메소드를 게시하십시오. – gilden

+0

고마워요. 예, 맞춤 엔터티 저장소였습니다. 그러나 나는 대답을 발견했다. (약 1 시간 쯤 걸렸습니다.) :) 감사! – Mike

답변

11

Nevermind, 답변 : echo $movie[0]->getId(); (리포지토리가 개체 배열을 반환 함)를 발견했습니다. 죄송합니다. 때로는 나무가있는 나무를 놓칠 수도 있습니다.

+1

코드를 다소 단순화하려면 저장소에서 Query :: getSingleResult 또는 Query :: getOneOrNullResult 메소드를 사용해야합니다. 그것들은 각각 하나의 결과를 리턴하고, 하나 이상의 결과가 사용 가능한 경우 예외를 던집니다. 또한 사용 가능한 결과가 없으면 getSingleResult가 예외를 throw합니다. –

+0

위대한 사이드 마크, 감사합니다 lachlan! – Mike

관련 문제