2014-03-26 3 views
0

DB : user, profile에 테이블이 있어야합니다. 테이블 프로파일에는 user_id라는 필드가 있습니다.Symfony2 일대일 연결 양방향

class User { 
    .... 

    /** 
    * @var \MyBundle\Entity\Profile 
    * @ORM\OneToOne(targetEntity="Profile", mappedBy="user") 
    * 
    */ 
    private $profile; 

    .... 
} 

및 프로필 클래스 : 나는 ID로 프로필 얻을 후 잘 작동 ->getUser()을 사용하려고하지만 ID로 사용자를 얻을 경우 다음이 작동하지 않습니다 ->getProfile() 원하는

class Profile { 
     .... 

     /** 
     * @var \MyBundle\Entity\User 
     * @ORM\OneToOne(targetEntity="User", inversedBy="profile") 
     * @ORM\JoinColumn(name="user_id", referencedColumnName="id") 
     * 
     */ 
     private $user; 

     .... 
    } 

(null를 돌려 준다)

$user = $this->getDoctrine() 
      ->getRepository('MyBundle:User') 
      ->find(76322); 

$user->getProfile(); // returns null :(

$profile = $this->getDoctrine() 
      ->getRepository('MyBundle:Profile') 
      ->find(12334); 

$profile->getUser(); // return User object 
+0

제공된 ID에 관련 프로필이 있거나 존재하는지 확인 하시겠습니까? – Javad

+0

네, 확실합니다 .. – latata

+0

'getProfile' 함수에는 무엇이 있습니까? – Javad

답변

0

이 시도 ..

class User { 
    .... 

    /** 
    * @var \MyBundle\Entity\Profile 
    * @ORM\OneToOne(targetEntity="Profile", mappedBy="users") 
    * 
    */ 
    private $profiles; 

    .... 
} 

프로필 클래스 :

class Profile { 
      .... 

      /** 
      * @var \MyBundle\Entity\User 
      * @ORM\OneToOne(targetEntity="User", inversedBy="profiles") 
      * 
      */ 
      private $users; 

      .... 
     } 

을 즐기십시오!

0

핀란드어 해결. 엔티티 메타 데이터가 포함 된 xml 파일도 있습니다. 나는 그들을 삭제했다. 잘 작동합니다.