繁体   English   中英

Symfony多对多关系

[英]Symfony Many to Many relationship

我有一个symfony项目,其中有一个包含用户信息的Entity,其中之一是FavClubs ,即用户在其最喜欢的列表中拥有的Clubs。 添加部分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,里面的数据还可以。

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;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM