나는 Customer
엔터티와 User
엔터티에 JOIN 관계 테이블 customers_users
이 있습니다.Doctrine Join 테이블이있는 ManyToOne - 필터 결과
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;
나는 고객이 생성 될 때 나는 그것에 사용자를 할당 할 수 원하는 실제로는 잘 작동합니다.
예를 들어 2 명의 고객과 2 명의 사용자가 있고 첫 번째 고객이 2 명의 사용자를 할당했습니다. 내가 두 번째 고객을 편집 한 후 때, 두 명의 사용자가 할당 한 것으로 나타났습니다하지만이를 선택하고 내가 양식을 보낼 때, 그것은 다음과 같은 예외가 발생합니다 :에,
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.