2012-06-25 14 views
7

Symfony2'ye yeni katılıyorum ve 2 birim arasında bir sol birleştirmede sorun yaşıyorum. Şu hata mesajını alıyorum ve bu sorunu çözmek için nasıl bilmiyorum:Symfony ONE-TO-ONE İlişkilendirme

[Semantical Error] line 0, col 69 near 'i': Error: Class Bundle\Entity\Users has no association named user_id

Varlık kullanıcılar:

class Users 
{ 
    /** 
    * @ORM\Id 
    * @ORM\Column(name="user_id", type="string", length="16") 
    * @ORM\OneToOne(targetEntity="UsersInformation", mappedBy="Users") 
    */ 
    protected $user_id; 

    /** 
    * @ORM\Column(type="string", length="255") 
    */ 
    protected $username; 


    /** 
    * @ORM\Column(type="string", length="32") 
    */ 
    protected $password; 

    ... 

    /** 
    * Set user_id 
    * 
    * @param string $userId 
    */ 
    public function setUserId($userId) 
    { 
     $this->user_id = $userId; 
    } 

    /** 
    * Get user_id 
    * 
    * @return string 
    */ 
    public function getUserId() 
    { 
     return $this->user_id; 
    } 

    ... 
} 

Varlık UsersInformation:

class UsersInformation 
    { 
    /** 
    * @ORM\Id 
    * @ORM\Column(type="string", length="16") 
    * @ORM\OneToOne(targetEntity="Users", inversedBy="UsersInformation") 
    * @ORM\JoinColumn(name="user_id", referencedColumnName="user_id") 
    */ 
    protected $user_id; 

    /** 
    * @ORM\Column(type="string", length="255") 
    */ 
    public $email; 

    /** 
    * @ORM\Column(type="string", length="1") 
    */ 
    public $gender; 

    /** 
    * @ORM\Column(type="string", length="255") 
    */ 
    public $company; 

    .... 
    } 

UsersRepository benziyor bu:

Neyi yanlış yapıyorum?

cevap

15

Bence querybuilder iyi görünüyor. Probleminiz veri yapısındadır.

Normalde buna yaklaşım şekliniz, ilişki başına bir özellik ayarlayarak yapılır. Users sınıfınız için, örneğin bir information veya userInformation numarasına sahip olmanız mantıklı olacaktır.

Belki de böyle bir şey yardımcı olur?