Aynı alanı farklı parametrelerle ilişkilendirmem gerekiyor.Aynı Varlık Üzerine Çok Kez Dokümenle Çoğaltılmış Giriş Hatası
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;
Bu değişkenler aynı tablo "id" aynı sütun adını kullanıyor.
"Menu_relations" tablosuna baktığımda, parametrelerim ile ilişkili iki birincil anahtar görüyorum.
i yeni kayıtlar eklemeye çalışırsanız
, ben bu hatayı alıyorum: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'
takma değerleri:
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ı'
]);
}
Hata, söz konusu özel cinsiyet_kimliği = 94 ve category_id = 1 veya herhangi bir ek için mi geliyor? Ekleme sorgusu nasıl yapılır? Onlar için uygun bir ayarlayıcınız var mı? – Javad
Hayır, bir ekleme işleminden sonra geliyor, ikinci eklentide. Bu bir fark yaratmıyor. –
Denetleyicinizde, ekleme sorgusunu nasıl hazırladığınıza dair kod verebilir misiniz? – Javad