동일한 필드를 다른 매개 변수와 연결해야합니다.Doctrine 동일한 엔티티의 ManyToMany 중복 엔트리 오류
ManyToMany :
/**
* @ORM\ManyToMany(targetEntity="BRCN\TaxonomyBundle\Entity\Taxonomy", mappedBy="genderCategories")
*/
private $genders;
/**
* @ORM\ManyToMany(targetEntity="BRCN\TaxonomyBundle\Entity\Taxonomy", inversedBy="genders")
* @ORM\JoinTable(name="menu_relations",
* joinColumns={@ORM\JoinColumn(name="gender_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="category_id", referencedColumnName="id")}
* )
*/
private $genderCategories;
이러한 변수가 동일한 테이블 "ID"열에서 동일한 이름을 사용한다.
"menu_relations"테이블을 보면 내 매개 변수와 관련된 두 개의 기본 키가 나타납니다.
내가 새 레코드를 삽입하려고
, 난이 오류를 받고 있어요 :An exception occurred while executing 'INSERT INTO menu_relations (gender_id, category_id) VALUES (?, ?)' with params [94, 1]:
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '94-1' for key 'PRIMARY'
삽입 값 :
if($request->isXmlHttpRequest()) {
$categories = $request->request->get('category');
foreach($categories as $key => $value) {
/** @var $gender \BRCN\TaxonomyBundle\Entity\Taxonomy */
$gender = $em->find('BRCNTaxonomyBundle:Taxonomy', $key);
if($gender) {
foreach($value as $category) {
$category = $em->find('BRCNTaxonomyBundle:Taxonomy', $category);
$gender->addGenderCategory($category);
$em->persist($gender);
}
$em->flush();
}
}
return JsonResponse::create([
'status' => true,
'message' => 'İlişkilendirme Başarılı'
]);
}
특정 gender_id = 94 및 category_id = 1 또는 삽입에 대한 오류가 발생합니까? 삽입 쿼리는 어떻게 작성합니까? 당신은 그들에게 적절한 세터가 있습니까? – Javad
아니요, 그것은 삽입 후, 두 번째 삽입에서 오는 것입니다. 그것은 차이를 만들지 않습니다. –
삽입 쿼리를 어떻게 작성하는지 컨트롤러에 코드를 제공 할 수 있습니까? – Javad