Home > other >  Generate quey on doctrine querybuilder
Generate quey on doctrine querybuilder

Time:07-19

I have three entities Compound, ComponentQuantity, and Component the Compound has a ManyToMany relationship with ComponentQuantity and ComponentQuantity has a ManyToMany relationship with Component.

I need to get the Compound's which ComponentQuantity are related with a Component,

If I would need the component quantity I would use:

$qb = $this->createQueryBuilder("c")
            ->where(':componentQuantity MEMBER OF c.componentQuantities')
            ->setParameters(array('componentQuantity' => $componentQuantity));

but I need something like

$qb = $this->createQueryBuilder("c")
            ->where(':component MEMBER OF c.componentQuantities.components')
            ->setParameters(array('component' => $component));

but this not work.

CodePudding user response:

You can do MEMBER OF on a level so for example c.componentQuantities but not c.componentQuantities.components. To do this you would need to do this (make a join to get the data at the right level):

$qb = $this->createQueryBuilder("c")
           ->join('c.componentQuantities', 'cq')
           ->where(':component MEMBER OF cq.components')
           ->setParameters(array('component' => $component));
  • Related