Twój problem polega na tym, że próbujesz wybrać jedno pole z encji Kategoria, jednocześnie wybierając cały obiekt połączonej encji Kategoria. W przeciwieństwie do zwykłego SQL, z komponentem QueryBuilder nie możesz wybrać jednostki tylko z tabeli, do której się dołączasz.
Jeśli chcesz zwrócić główny obiekt kategorii z dołączonymi elementami podrzędnymi, możesz wykonać ->select(array('c', 'cc'))
lub po prostu pomiń ->select()
zadzwoń całkowicie. Pierwszy automatycznie wybierze dzieci, których potrzebujesz w jednym zapytaniu. Ta ostatnia będzie wymagać innego zapytania SQL, jeśli chcesz uzyskać dostęp do elementów potomnych w głównej encji Category.
Jeśli istnieje powód, dla którego chcesz name
aby wybrać jako title
w swoim obiekcie zawsze możesz dodać inną funkcję do swojej encji, która jest aliasem do pobierania nazwy, zamiast wpisywać ją w zapytaniu:
function getTitle()
{
return $this->getName();
}