Tôi có một thực thể Người dùng. Và những người dùng đó có thể kết bạn với nhau. Vì vậy, tôi đã định nghĩa một tham chiếu tự liên kết đa hướng OneToMany (bởi vì luôn có sự tương hỗ là tình bạn, đúng không?).manyToMany gây ra lỗi nhập trùng lặp
một mảnh thực thể của tôi dùng trong YML
manyToMany:
friendList:
targetEntity: User
joinTable:
name: user_friend
joinColumns:
user_id:
referencedColumnName: id
inverseJoinColumns:
friend_id:
referencedColumnName: id
cascade: [persist]
Khi tôi gọi $user->addFriendList($friend)
, và sau một kiên trì và một tuôn ra, tôi có PDOException
:
SQLSTATE [23000]: Liêm chính hạn chế vi phạm : 1062 Mục nhập trùng lặp '1-2' cho fey 'PRIMARY'
Khi tôi kiểm tra nhật ký, tôi có thể thấy rằng học thuyết đang cố gắng e xectue cùng một truy vấn chèn hai lần.
Để biết thông tin của bạn, chức năng addFriendList
tôi
public function addFriendList(User $friend)
{
if (!$this->friendList->contains($friend)) {
$this->friendList[] = $friend;
$friend->addFriendList($this);
}
}
Tôi đang ở đâu sai ở đây?