Le constructeur de requêtes se joint à de nombreuses relations
Je suis en train d'utiliser le générateur de requêtes pour sélectionner toutes les catégories qui appartiennent à un certain supercatégories (catégorie et supercatégories ont une relation plusieurs-à-plusieurs).
Cependant, je suis incapable de construire une bonne query builder phrase parce que je ne sais pas comment faire pour faire référence à la supercatégorie de ma catégorie il n'y a pas de supercatégories champ à l'intérieur de mon ID de la catégorie.
Les objets dans la base de données ressembler à :
Category:
id
name
SuperCategory
id
name
categories_superCategories
id
category_id
superCategory_id
Voici la définition de mes objets (fichiers yml ) :
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
et
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
Comment pourrais-je construire un générateur de requêtes de peine à obtenir les catégories qui appartiennent à un certain supercatégories ?
La requête à l'intérieur de mon CategoryRepository :
$this->createQueryBuilder('c')
->innerJoin( ?????? )
->setParameter('superCategoryName', $superCategoryName);
Merci...
source d'informationauteur fkoessler
Vous devez vous connecter pour publier un commentaire.
Eu :
Le problème était que je devais demander c.supercatégories et pas un c.supercatégories !
Quelque chose comme: