Ich versuche Query Builder zu verwenden, um alle Kategorien auszuwählen, die zu einer bestimmten SuperCategory gehören (Kategorie und SuperCategory haben eine Viele-zu-viele-Beziehung). Ich kann jedoch keinen korrekten Abfrage-Generator-Satz erstellen, weil ich nicht weiß, wie ich auf die Super-Kategorie aus meiner Kategorie verweisen soll, da es in meiner Kategorie-ID kein Super-Kategorie-Feld gibt. schauenQuery Builder Join auf viele zu viele Beziehung
Die Objekte in der Datenbank wie:
Category:
id
name
SuperCategory
id
name
categories_superCategories
id
category_id
superCategory_id
Hier ist die Definition meiner Objekte (yml Dateien) sind:
YOP\YourOwnPoetBundle\Entity\TraitCategory:
type: entity
repositoryClass: YOP\YourOwnPoetBundle\Repository\TraitCategoryRepository
table: null
fields:
id:
type: integer
id: true
generator:
strategy: AUTO
name:
type: string
length: '255'
lifecycleCallbacks: { }
manyToMany:
superCategories:
targetEntity: SuperCategory
joinTable:
name: traitCategories_superCategories
joinColumns:
traitCategory_id:
referencedColumnName: id
inverseJoinColumns:
superCategory_id:
referencedColumnName: id
und
YOP\YourOwnPoetBundle\Entity\SuperCategory:
type: entity
repositoryClass: YOP\YourOwnPoetBundle\Repository\SuperCategoryRepository
table: null
fields:
id:
type: integer
id: true
generator:
strategy: AUTO
name:
type: string
length: '255'
lifecycleCallbacks: { }
manyToMany:
msgCategories:
targetEntity: MsgCategory
mappedBy: superCategories
traitCategories:
targetEntity: TraitCategory
mappedBy: superCategories
Wie würde ich bauen ein Abfrage-Builder-Satz, um die Kategorien zu erhalten, die zu einer bestimmten SuperCategory gehören?
Die Abfrage in meinem CategoryRepository:
$this->createQueryBuilder('c')
->innerJoin(??????)
->setParameter('superCategoryName', $superCategoryName);
Danke ...