2014-01-26 22 views
0

我有一個用戶實體和任務實體,被相關數組集合:映射關聯的incosistent相互

symfony中的探查我得到兩個錯誤。

對於類的Acme \ ManagementBundle \實體\用戶,我得到:

The mappings Acme\ManagementBundle\Entity\User#missions and Acme\ManagementBundle\Entity\Mission#users are incosistent with each other. 

對於類的Acme \ ManagementBundle \實體\任務獲得:

The association Acme\ManagementBundle\Entity\Mission#users refers to the inverse side field Acme\ManagementBundle\Entity\User#users which does not exist. 

我嘗試自己解決讀here但我不能。

我的任務實體是:

級任務{

/** 
    * @ORM\ManyToMany(targetEntity="Acme\ManagementBundle\Entity\User", inversedBy="users") 
    */ 
    protected $users; 

    public function __construct(){ 
     $this -> users = new ArrayCollection(); 
    } 

     /** 
    * Add users 
    * 
    * @param \Acme\ManagementBundle\Entity\User $users 
    * @return Mission 
    */ 
    public function addUser(\Acme\ManagementBundle\Entity\User $users) 
    { 
     $this->users[] = $users; 

     return $this; 
    } 

    /** 
    * Remove users 
    * 
    * @param \Acme\ManagementBundle\Entity\User $users 
    */ 
    public function removeUser(\Acme\ManagementBundle\Entity\User $users) 
    { 
     $this->users->removeElement($users); 
    } 

    /** 
    * Get users 
    * 
    * @return \Doctrine\Common\Collections\Collection 
    */ 
    public function getUsers() 
    { 
     return $this->users; 
    } 
//... 
} 

而且我的用戶實體:

abstract class User extends BaseUser 
{ 

    /** 
    * @ORM\ManyToMany(targetEntity="Acme\ManagementBundle\Entity\Mission", mappedBy="users") 
    */ 
    protected $missions;  
    public function __construct(){ 
     parent::__construct(); 
     $this -> missions = new ArrayCollection(); 
    } 
    /** 
    * Add missions 
    * 
    * @param \Acme\ManagementBundle\Entity\Mission $missions 
    * @return User 
    */ 
    public function addMission(\Acme\ManagementBundle\Entity\Mission $missions) 
    { 
     $this->missions[] = $missions; 

     return $this; 
    } 

    /** 
    * Remove missions 
    * 
    * @param \Acme\ManagementBundle\Entity\Mission $missions 
    */ 
    public function removeMission(\Acme\ManagementBundle\Entity\Mission $missions) 
    { 
     $this->missions->removeElement($missions); 
    } 

    /** 
    * Get missions 
    * 
    * @return \Doctrine\Common\Collections\Collection 
    */ 
    public function getMission() 
    { 
     return $this->missions; 
    } 
} 

回答

3

你必須在users屬性錯誤標註在Mission類。它應該是:

/** 
* @ORM\ManyToMany(targetEntity="Acme\ManagementBundle\Entity\User", inversedBy="missions") 
*/ 
protected $users;