Ejemplo n.º 1
0
 public function getBy(QueryObject $query)
 {
     $class = $this->entity_class;
     $query->setBaseEntity(new $class());
     $filter = (string) $query;
     $do = $class::get()->where($filter);
     $joins = $query->getAlias();
     foreach ($joins as $table => $clause) {
         $do = $do->innerJoin($table, $clause);
     }
     if (count($query->getOrder())) {
         $do = $do->sort($query->getOrder());
     }
     if (is_null($do)) {
         return false;
     }
     $entity = $do->first();
     $this->markEntity($entity);
     return $entity;
 }
 public function getBy(QueryObject $query)
 {
     $class = $this->entity_class;
     $query->setBaseEntity(new $class());
     $filter = (string) $query;
     $do = $class::get()->where($filter);
     foreach ($query->getAlias(QueryAlias::INNER) as $spec) {
         $do = $do->innerJoin($spec->getTable(), $spec->getCondition(), $spec->getAlias());
     }
     foreach ($query->getAlias(QueryAlias::LEFT) as $spec) {
         $do = $do->leftJoin($spec->getTable(), $spec->getCondition(), $spec->getAlias());
     }
     if (count($query->getOrder())) {
         $do = $do->sort($query->getOrder());
     }
     if (is_null($do)) {
         return false;
     }
     $entity = $do->first();
     $this->markEntity($entity);
     return $entity;
 }
Ejemplo n.º 3
0
 public function getBy(QueryObject $query)
 {
     $class = $this->entity_class;
     $query->setBaseEntity(new $class());
     $filter = (string) $query;
     $do = $class::get()->where($filter);
     $joins = $query->getAlias();
     foreach ($joins as $table => $clause) {
         $do = $do->innerJoin($table, $clause);
     }
     if (count($query->getOrder())) {
         $do = $do->sort($query->getOrder());
     }
     if (is_null($do)) {
         return false;
     }
     $entity = $do->first();
     if (!is_null($entity) && $entity instanceof IEntity) {
         UnitOfWork::getInstance()->setToCache($entity);
         UnitOfWork::getInstance()->scheduleForUpdate($entity);
     }
     return $entity;
 }