LessQL\Result::execute PHP Метод

execute() публичный Метод

Execute the select query defined by this result.
public execute ( )
    function execute()
    {
        if (isset($this->rows)) {
            return $this;
        }
        if ($this->parent_) {
            // restrict to parent
            $this->where[] = $this->db->is($this->key, $this->parent_->getGlobalKeys($this->parentKey));
        }
        $root = $this->getRoot();
        $definition = $this->getDefinition();
        $cached = $root->getCache($definition);
        if (!$cached) {
            // fetch all rows
            $statement = $this->db->select($this->table, array('expr' => $this->select, 'where' => $this->where, 'orderBy' => $this->orderBy, 'limitCount' => $this->limitCount, 'limitOffset' => $this->limitOffset, 'params' => $this->whereParams));
            $rows = $statement->fetchAll();
            $cached = array();
            // build row objects
            foreach ($rows as $row) {
                $row = $this->createRow($row);
                $row->setClean();
                $cached[] = $row;
            }
            $root->setCache($definition, $cached);
        }
        $this->globalRows = $cached;
        if (!$this->parent_) {
            $this->rows = $cached;
        } else {
            $this->rows = array();
            $keys = $this->parent_->getLocalKeys($this->parentKey);
            foreach ($cached as $row) {
                if (in_array($row->__get($this->key), $keys)) {
                    $this->rows[] = $row;
                }
            }
        }
        return $this;
    }