J'espère que d'autres utilisateurs de doctrine seront disponibles.
Voici une YAML simplifiée de mes relations:Comment puis-je autoriser les enregistrements en double dans une collection de doctrine?
Collection:
columns:
id: { type: integer(4), notnull: true, primary: true, autoincrement: true }
name: { type: string(255), notnull: true, unique: true }
relations:
Items:
class: Item
refClass: CollectionItem
foreignAlias: Collections
type: many
foreignType: many
Item:
columns:
id: { type: integer(4), notnull: true, primary: true, autoincrement: true }
name: { type: string(255), notnull: true }
CollectionItem:
columns:
id: { type: integer(4), notnull: true, primary: true, autoincrement: true }
collection_id: { type: integer(4) }
item_id: { type: integer(4) }
relations:
Collection:
foreignAlias: CollectionItem
foreignType: one
Item:
foreignAlias: CollectionItem
foreignType: one
Je veux une collection pour pouvoir contenir plusieurs exemplaires du même article, mais quand j'utilise les classes générées pour charger des articles comme ceci:
$collection = Doctrine::getTable('Collection')->find(1);
$items = $collection->Items;
$ articles ne contient pas mes doublons. Le SQL généré semble revenir correctement les lignes en double:
SELECT i.id AS i__id, i.name AS i__name, c.id AS c__id, c.collection_id AS c__collection_id, c.item_id AS c__item_id, FROM item i LEFT JOIN collection_item c ON i.id = c.item_id WHERE c.collection_id IN (?) - (1)
Je sais que je peux contourner ce que je fasse des requêtes DQL spécifiques au lieu, mais que quelqu'un sait s'il est simple réglage quelque part pour permettre la collection Items d'avoir des doublons?