gpt4 book ai didi

php - Doctrine2 映射 : 2 fields mapped to one field (ManyToOne)

转载 作者:可可西里 更新时间:2023-11-01 12:34:21 25 4
gpt4 key购买 nike

我有 2 个实体,即 Match 和 Team。一个团队可以有一对多的比赛。但是,我的 Match 实体常量包含 2 个引用同一实体 Team 的字段。它们是 $homeTeam 和 $awayTeam。如何将团队中的相同字段 $matches 引用为双向关系?

我当前的非工作代码如下:

我的匹配实体:

/**
* @ORM\Entity
* @ORM\Table(name="match")
**/
class Match {

/**
* @ORM\ManyToOne(targetEntity="Team", inversedBy="matches")
* @ORM\JoinColumn(name="home_team_id", referencedColumnName="id")
* **/
protected $homeTeam;

/**
* @ORM\ManyToOne(targetEntity="Team", inversedBy="matches")
* @ORM\JoinColumn(name="away_team_id", referencedColumnName="id")
* **/
protected $awayTeam;

我的团队实体(我认为不正确?):

/**
* @ORM\Entity
* @ORM\Table(name="team")
* **/
class Team {

/** @ORM\OneToMany(targetEntity="Match", mappedBy="homeTeam", mappedBy="awayTeam") **/
protected $matches;

最佳答案

探索后Doctrine's official docs :您不能添加多个 mappedBy 列。取而代之的是,您可以选择:

  1. Match 创建自定义存储库并定义方法 getAllMatchesForTeam($team)
  2. 定义适当的关系 $homeMatches$awayMatches + Team 上的方法 getAllMatches() 和 union 结果$homeMatches$awayMatches

在这里阅读更多:

  1. https://stackoverflow.com/questions/13922047/symfony2-doctrine2-how-to-implement-methods-on-entity-to-retrieve-related-ent
  2. Custom repository class in Symfony2
  3. Fetching data through a custom repository in a Twig extension
  4. How can I access a service outside of a controller with Symfony2?

关于php - Doctrine2 映射 : 2 fields mapped to one field (ManyToOne),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13576423/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com