我有一个Customer
实体和User
一个带有 JOIN 关系表的实体customers_users
。
在Customer
我有这个的实体中。
/**
* @var User
*
* @ORM\ManyToMany(targetEntity="Entity\User")
* @ORM\JoinTable(name="customers_users",
* joinColumns={@ORM\JoinColumn(name="customer_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id", unique=true)}
* )
*
*/
private $users;
我希望在创建客户时我可以将用户分配给它并且实际上它运行良好,但是我希望过滤用户以仅显示那些未分配给无客户的用户。
例如,我有两个客户和两个用户,第一个客户分配了两个用户;然后当我编辑第二个客户时,似乎为它分配了两个用户,但是当我选择这些并发送表单时,它会引发以下异常:
An exception occurred while executing 'INSERT INTO customers_users (customer_id, user_id) VALUES (?, ?)' with params [2, 1]:
SQLSTATE[23505]: Unique violation: 7 ERROR: duplicate key value violates unique constraint "uniq_2763c6cca76ed395"
DETAIL: Key (user_id)=(1) already exists.