У меня небольшая проблема при попытке создать ссылку «многие ко многим» в доктрине.
У меня есть простой сценарий: пользователь и роль с определенным отношением «многие ко многим».
$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();
Теперь я провел несколько экспериментов и могу без проблем сохранять пользователя и роль самостоятельно.У них обоих есть идентификаторы автоинкремента, и они работают нормально.Проблема начинается, когда я хочу создать связь с исключением: «Не удалось получить идентификатор последней вставки».
Я не могу изменить схему БД, и я не генерировал ее с помощью YAML - я реверсировал инженерные модели из существующихБД через «generateModelsFromDb».Вот как выглядит эта таблица:
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;
Ошибка, которую я получаю, предполагает, что что-то не так с созданием идентификатора первичного ключа для этой таблицы, но я не уверен, что он мне нужен (возможно, уникальныйключ для устранения дубликатов?).
У кого-нибудь есть какие-нибудь подсказки?