我有一个Gift
实体,该实体具有发送和接收器...无论是从实体User
用户可以是许多礼物给其他用户发送。但也有接收器的许多礼物从许多用户Doctrine2 Symfony2的多个多对多关系
我看到它的样子,我Gift
实体内部的解决办法是这样的:
/**
* @ORM\ManyToMany(targetEntity="Tracker\UserBundle\Entity\User")
* @ORM\JoinTable(name="gift_user",
* joinColumns={@ORM\JoinColumn(name="sender_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="gift_id", referencedColumnName="id")}
* )
*/
protected $senders;
/**
* @ORM\ManyToMany(targetEntity="Tracker\UserBundle\Entity\User")
* @ORM\JoinTable(name="gift_user",
* joinColumns={@ORM\JoinColumn(name="receiver_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="gift_id", referencedColumnName="id")}
* )
*/
protected $receivers;
但是当我运行php app/console doctrine:schema:update --dump-sql
我得到:
[Doctrine\DBAL\Schema\SchemaException]
The table with name 'finaldb.gift_user' already exists.
我该如何改变我的语法,配置,所以我最终得到这样的表?
gift_id | sender_id | receiver_id
感谢,让我怎么解决这个问题?对我来说很重要的是,接收者被识别出来,这很容易完成......但我怎样才能以清晰的方式识别发件人?解决方法? – Confidence
完全错过了关于评论的通知,抱歉。 如果你有一个接收者 - 发送者结构,你可能想要使用一个带有两个字段的连接实体,一个指的是发送者,另一个指向接收者。这将删除您的@ ManyToMany'关系,并将其替换为一个实体,以便您可以指定关联。 – Ocramius