I need to associate the same field with different parameters.
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;
These variables use the same column name in the same id table.
When I look at the "menu_relations" table, I see two primary keys associated with my settings.
When I try to insert new entries, I get this error:
An exception occurred while executing 'INSERT INTO menu_relations (gender_id, category_id) VALUES (?,?)' With parameters [94, 1]:
SQLSTATE [23000]: Integrity constraint violation: 1062 Duplicate record '94 -1 'for key' PRIMARY '
Insert Values:
if($request->isXmlHttpRequest()) { $categories = $request->request->get('category'); foreach($categories as $key => $value) { $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ı' ]); }
sql php symfony doctrine2
R. Canser Yanbakan
source share