Symfony很多很多关系

时间:2016-09-26 08:38:57

标签: php symfony

我有一个symfony项目,其中我有一个实体,其中包含用户的信息,其中一个是 FavClubs ,用户在他最喜欢的列表中拥有的俱乐部。 添加部分addFavClub()效果很好,但是当我尝试使用getFavClubs()检索数据时,它只会返回添加的最后一个俱乐部,如果我添加了一个俱乐部,它会覆盖旧的俱乐部。 数据库部分运行良好,它保留所有条目。 我搜索并尝试了我找到的东西,但它没有用,有什么帮助吗? 谢谢!

 /**
 * @ORM\ManyToMany(targetEntity="AppBundle\Entity\TournamentClub")
 */
private $favClubs;

 /**
 * Constructor
 */
public function __construct()
{
    $this->favClubs = new \Doctrine\Common\Collections\ArrayCollection();
}

/**
 * Add favClub
 *
 * @param \AppBundle\Entity\TournamentClub $favClub
 *
 * @return UserProfilePlayerprofile
 */
public function addFavClub(\AppBundle\Entity\TournamentClub $favClub)
{
    $this->favClubs[] = $favClub;
    return $this;
}

/**
 * Remove favClub
 *
 * @param \AppBundle\Entity\TournamentClub $favClub
 */
public function removeFavClub(\AppBundle\Entity\TournamentClub $favClub)
{
    $this->favClubs->removeElement($favClub);
}

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

- 编辑 - 如果我做一个getFavClubs

,那就是symfony转储
UserController.php on line 180:
PersistentCollection {#1721 ▼
  -snapshot: []
  -owner: UserProfilePlayerprofile {#1579 ▶}
  -association: array:20 [ …20]
  -em: EntityManager {#1342 …11}
  -backRefFieldName: null
  -typeClass: ClassMetadata {#1591 …}
  -isDirty: true
  #collection: ArrayCollection {#1722 ▼
     -elements: array:1 [▼
         0 => TournamentClub {#1734 ▶}
     ]
  }
  #initialized: false
}

该系列里面应该有5个TournamentClub,里面的数据还可以。

1 个答案:

答案 0 :(得分:1)

User Entity :

/**
 *
 * @ORM\ManyToMany(targetEntity="TournamentClub", inversedBy="user")
 * @ORM\JoinTable(name="user_favclubs")
 */
protected $favClubs;


TournamentClub Entity :
/**
 *
 * @ORM\ManyToMany(targetEntity="User", mappedBy="favClubs")
 */
protected $user;