Symfony3 - 多对多双向表重复

时间:2018-06-15 22:23:21

标签: symfony doctrine symfony-3.4

这是我的问题:

我有一个名为UserBase的抽象类,它扩展了我的所有用户 - 实体:

/**
* Class UserBase
* @ORM\MappedSuperclass()
*/
abstract class UserBase implements UserInterface, \JsonSerializable {

/**
 * @var int
 *
 * @ORM\Column(name="id", type="integer")
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="AUTO")
 */
private $id;

....

在此实体中,名为ChatConversation的实体之间存在多对多双向关系:

 /**
 * @var \Doctrine\Common\Collections\ArrayCollection
 *
 * @ORM\ManyToMany(
 *     targetEntity="AppBundle\Entity\ChatConversation",
 *     inversedBy="users"
 * )
 * @ORM\JoinTable(
 *     name="chat_user_conversation",
 *     joinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id")},
 *     inverseJoinColumns={@ORM\JoinColumn(name="conversation_id", referencedColumnName="id")}
 * )
 */
private $conversations;

ChatConversation上课:

class ChatConversation {
/**
 * @var int
 *
 * @ORM\Column(name="id", type="integer")
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="AUTO")
 */
private $id;

/**
 * @var \Doctrine\Common\Collections\ArrayCollection
 *
 * @ORM\ManyToMany(
 *     targetEntity="AppBundle\Entity\UserBase",
 *     mappedBy="conversations"
 * )
 */
private $users;

这段代码对我来说似乎很正确但是当我尝试更新数据库架构时,这会导致错误:

Console error

我希望有人可以帮我弄清楚我的代码有什么问题,谢谢你!

1 个答案:

答案 0 :(得分:0)

问题是由doctrine架构更新脚本尝试为扩展UserBase的每个子类创建“join”chat_user_conversation引起的。

要解决此问题,您可以在实体的定义中使用Association override

UPDATE