【问题标题】:Additional field in Many to Many Relation [duplicate]多对多关系中的附加字段[重复]
【发布时间】:2017-01-10 07:49:09
【问题描述】:

只有分配给他们的用户才能看到campaigns。他们可以看到竞选活动的事实并不意味着他们正在参与其中。我想让用户有机会加入广告系列。

我使用双向、多对多关系,表user_campaign 是自动创建的。是否有可能添加像participating 这样的附加字段?我宁愿不创建新表。

实体用户.php

/**
 * @ORM\ManyToMany(targetEntity="Reko\CampaignBundle\Entity\Campaign", inversedBy="users")
 * @ORM\OrderBy({"id" = "DESC"})
 * @ORM\JoinTable(name="user_campaign")
 */
protected $campaigns;

实体 Campaign.php

/**
 * @ORM\ManyToMany(targetEntity="Reko\UserBundle\Entity\User", mappedBy="campaigns")
 */
protected $users;

【问题讨论】:

  • m:n 上的额外数据始终意味着需要一个中间实体来承载该额外数据。然后,新实体拥有两个原始实体的1:n

标签: php doctrine-orm doctrine symfony


【解决方案1】:

基本上,您需要的是用户和广告系列之间的两个多对多关系。一个代表任务,一个代表参与。由于学说只能自动创建一个可连接件,因此您必须在注释中手动命名您的两个可连接件,这很好!

【讨论】:

    猜你喜欢
    • 2012-03-25
    • 2011-05-25
    • 1970-01-01
    • 1970-01-01
    • 2021-10-14
    • 2011-10-13
    • 2013-02-12
    • 2021-07-13
    • 1970-01-01
    相关资源
    最近更新 更多