PHP doktrini çok-çok son tanımlayıcı sorun

0 Cevap php

Doktrinde çok-çok bağlantı oluşturmak için çalışırken ben küçük bir sorun var.

Burada basit bir senaryo var: tanımlanan çok-çok ilişkisi olan kullanıcı ve Rolü.

$user = new User();
$user->username = 'greg';
$user->save();


$role = new Role();
$role->name = "Administrator";
$role->save();

$role_user = new Role_User();
$role_user->Role = $role;
$role_user->User = $user;
$role_user->save();

Şimdi, bazı deneyler yaptım ve herhangi bir sorun olmadan kendi üzerinde kullanıcı ve rol kaydedebilirsiniz. Her ikisi de değiştirmemesi kimlikleri var ve iyi çalışıyor. Sorun istisna söyleyerek ilişki oluşturmak istediğinizde 'son insert tanıtıcısı alınamadı' başlar.

Ben DB şema değiştiremezsiniz ve ben YAML yoluyla üreten değildi - ben 'generateModelsFromDb' üzerinden mevcut DB mühendislik modelleri ters. Bu bu tablo gibi görünüyor nasıl:

CREATE TABLE  `ofp`.`Role_User` (
   `roles_id` bigint(20) NOT NULL,
   `users_id` bigint(20) NOT NULL,
   KEY `FK8B6B91F429A30245` (`roles_id`),
   KEY `FK8B6B91F429A6266F` (`users_id`),
   CONSTRAINT `FK8B6B91F429A6266F` FOREIGN KEY (`users_id`) REFERENCES `User` (`id`),
   CONSTRAINT `FK8B6B91F429A30245` FOREIGN KEY (`roles_id`) REFERENCES `Role` (`id`)
 ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Ben bu tabloya birincil anahtar tanımlayıcı oluştururken yanlış bir şey öneririm alıyorum, ama ben orada bir gerek emin değilim Hata (çiftleri ortadan kaldırmak için belki benzersiz anahtar?).

Herkes herhangi bir ipucu var mı?

0 Cevap