Как удалить составной ПК из Symfony2 ManyToMany - PullRequest
1 голос
/ 21 марта 2012

Мне нужно, чтобы несколько товаров присутствовали в корзине. Я не хочу увеличивать столбец количества, на самом деле я хочу, чтобы один и тот же объект Product в корзине был дважды. Я хочу повторно использовать объекты Product и не создавать посредника CartProduct.

Корзина Продукт ManyToMany

Однако таблица создается с помощью doctrine: schema: update с составным первичным ключом cart_id + product_id. Это не позволяет мне добавлять один и тот же продукт дважды.

Как мне решить эту проблему?

Это не единственный вариант использования, в котором я нуждаюсь в ManyToMany для поддержки дублирующихся записей. Это просто невозможно с Symfony2 / Doctrine?

1 Ответ

1 голос
/ 21 марта 2012

Это не столько ограничение доктрины, сколько реляционные базы данных. Каждая строка должна иметь уникальный первичный ключ, который по умолчанию в Doctrine 2 будет product_id, cart_id.

Единственный способ обойти это - сделать себя явным объектом CartProduct и добавить хотя бы еще один столбец. Не так сложно сделать. Просто установите для него отношения OneToMany из корзины и продукта.

...