2014-01-26 1 views
0

У меня есть объект пользователя и сущность миссии, которые связаныМассив Коллекция: Отображение ассоциация является incosistent друг с другом

В профилировщике Symfony я получаю две ошибки.

Для класса Acme \ ManagementBundle \ Entity \ User я получаю:

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

Для класса Acme \ ManagementBundle \ Entity \ миссии я получаю:

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; 
Смежные вопросы