Chcete-li přistupovat k ->účastníkům stejným způsobem pomocí QueryBuilderu, budete muset zabudovat spojení do Query.
Příklad kódu může být něco jako:
$queryBuilder = $this->getDI()->getModelsManager()
->createBuilder()
->columns(['p.id','participants.*'])
->addFrom('Entity\Projects', 'p')
->leftJoin('Entity\Participants', 'participants.projectId = p.id', 'participants')
->groupBy('p.id, participants.id')
->orderBy('p.id ASC');
$resultSet = $queryBuilder->getQuery()->execute();
groupBy() by se zde používá k tomu, aby výsledek mohl být vícerozměrný.
Tento druh dotazu (testovaný pod PgSQL) přiměl Phalcon vytvořit některé následné objekty ResultSet účastníků pi uvnitř Sady výsledků pro projekty p .
Stále ji můžete iterovat pomocí foreach() ale koneckonců nejsem si jistý, že to snížilo konečný počet dotazů .
Spouští se $result = $resultSet->toArray() vytvořeno $result['pi'] zůstat jako Resultset, takže byste měli zůstat opatrní. Můžete vynutit její výpis jako pole definováním přesných sloupců v columns() parametry. Má to svou nevýhodu – z groupBy() už nebudete profitovat , alespoň na Phalcon 1.3.2 a PHP 5.5.3, které zde běží.