Witam!
Mam tabelę Kategorie która ma relacje wielu do wielu z tabelą Produkty, a tabela Produkty ma relacje jeden do wielu z kategorią atrybuty ( jeden produkt może mieć wiele atrybutów ). Chcę zrobić zapytanie które zwróci mi wszystkie atrybuty produktów w danej kategorii, jeżeli jakieś produkty są przypisane do danej kategorii to chcę pobrać ich atrybuty. Wydaje mi się że powinienem pobierać rekordy z repozytorium tabeli Atrybuty czyli $this->getDoctrine->getRespitory(Attribute::class)->getAllProductsAttributeInCategory($categoryId); i odrzucać rekordy funkcją andWhere. Interesują mnie Id, name value z tej tabeli, ale w jaki sposób sprawdzać czy Produkt danego atrybutu jest w danej kategorii przy relacji wielu do wielu ?
Funkcję wykonuję w AttributeRepository
public function getAllProductsAttributeInCategory($categoryId)
{
return $this->createQueryBuilder('attr')
->addSelect('attr')
->innerJoin('attr.product', 'product') // Tabela Produkty
->addSelect('product')
->andWhere('b.category IN (:id)')->setParameter('id', $categoryId)
->orderBy('a.name', 'ASC')
->getQuery();
}