/** * Will join all localKey relations * @return myDoctrineQuery */ public function joinLocals(myDoctrineQuery $query) { $rootAlias = $query->getRootAlias(); foreach ($this->getRelationHolder()->getLocals() as $relation) { $query->leftJoin(sprintf('%s.%s %s', $rootAlias, $relation->getAlias(), dmString::lcfirst($relation->getAlias()))); } return $query; }
/** * Will join all localKey relations * @return myDoctrineQuery */ public function joinLocals(myDoctrineQuery $query, $withI18n = false) { $rootAlias = $query->getRootAlias(); foreach ($this->getRelationHolder()->getLocals() as $relation) { if ($relation->getClass() === 'DmMedia') { $query->withDmMedia($relation->getAlias()); } else { $joinAlias = dmString::lcfirst($relation->getAlias()); $query->leftJoin(sprintf('%s.%s %s', $rootAlias, $relation->getAlias(), $joinAlias)); if ($withI18n && $relation->getTable()->hasI18n()) { $joinTranslationAlias = $joinAlias . 'Translation'; $query->leftJoin($joinAlias . '.Translation ' . $joinTranslationAlias . ' ON ' . $joinAlias . '.id = ' . $joinTranslationAlias . '.id AND ' . $joinTranslationAlias . '.lang = ?', myDoctrineRecord::getDefaultCulture()); } } } return $query; }