示例#1
0
 /**
  * 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;
 }
示例#2
0
 /**
  * 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;
 }