/** * help $this->queryBuilder to construct a PHQL object * apply join conditions and return query object * * * @param \Phalcon\Mvc\Model\Query\BuilderInterface $query * @param string $nameSpace * @return \Phalcon\Mvc\Model\Query\BuilderInterface */ public function queryJoinHelper(\Phalcon\Mvc\Model\Query\BuilderInterface $query) { $config = $this->getDI()->get('config'); $modelNameSpace = $config['namespaces']['models']; $parentModels = $this->getParentModels(true); $columns = []; // join all active hasOne's instead of just the parent foreach ($this->activeRelations as $relation) { if ($relation->getType() == 1) { $refModelNameSpace = $modelNameSpace . $relation->getModelName(); $query->join($refModelNameSpace); // add all parent joins to the column list if ($parentModels and in_array($refModelNameSpace, $parentModels)) { $columns[] = "{$refModelNameSpace}.*"; } } } $query->columns($columns); return $query; }