我目前正在尝试扩展 SonataUserBundle 的用户以添加与现有实体的新多对多关系。
我根据此处找到的答案扩展了用户 -扩展奏鸣曲用户捆绑并添加新字段
用户.php
/**
* @ORM\ManyToMany(targetEntity="Foo\BarBundle\Entity\Pledge", inversedBy="pledgedUsers")
**/
private $pledgedOn;
// (...) generated getters and setters here
质押.php
/**
* @ORM\ManyToMany(targetEntity="Foo\UserBundle\Entity\User", inversedBy="pledgedOn")
**/
private $pledgedUsers;
// (...) generated getters and setters here
当我同步模式时,我注意到的第一件事是它创建了 2 个数据透视表,而不仅仅是一个:pledge_user
和user_pledge
. 我尝试添加一个@ORM\JoinTable
,但这只是改变一个的名称。当我将相同的内容添加@ORM\JoinTable
到两者时,我会收到“表已存在”错误。
当我尝试在管理员中访问用户列表时,我收到了一个很大的 sql 错误
An exception occurred while executing 'SELECT count(DISTINCT u0_.id) AS sclr0 FROM User u0_ LEFT JOIN fos_user_user_group f2_ ON u0_.id = f2_.user_id LEFT JOIN fos_user_group f1_ ON f1_.id = f2_.group_id':
SQLSTATE[42703]: Undefined column: 7 ERROR: column u0_.id does not exist
我确信这很简单,但我正在寻找这个问题的根源。我错过了什么?
完整用户.php:http: //pastebin.com/TXunsgm1
完整的 Pledge.php:http ://pastebin.com/Mta6aiVm