protected function execute() { if ($this->rows !== NULL) { return; } parent::execute(); $this->onExecute(); }
protected function execute() { if ($this->rows !== NULL) { return; } $hash = md5($this->sqlBuilder->buildSelectQuery() . json_encode($this->sqlBuilder->getParameters())); $referencing =& $this->getRefTable($refPath)->referencing[$refPath . $hash]; $this->rows =& $referencing['rows']; $this->referenced =& $referencing['refs']; $this->accessed =& $referencing['accessed']; $refData =& $referencing['data']; if ($refData === NULL) { $limit = $this->sqlBuilder->getLimit(); $rows = count($this->refTable->rows); if ($limit && $rows > 1) { $this->sqlBuilder->setLimit(NULL, NULL); } parent::execute(); $this->sqlBuilder->setLimit($limit, NULL); $refData = array(); $offset = array(); foreach ($this->rows as $key => $row) { $ref =& $refData[$row[$this->column]]; $skip =& $offset[$row[$this->column]]; if ($limit === NULL || $rows <= 1 || count($ref) < $limit && $skip >= $this->sqlBuilder->getOffset()) { $ref[$key] = $row; } else { unset($this->rows[$key]); } $skip++; unset($ref, $skip); } } $this->data =& $refData[$this->active]; if ($this->data === NULL) { $this->data = array(); } else { foreach ($this->data as $row) { $row->setTable($this); // injects correct parent GroupedSelection } reset($this->data); } }
protected function execute() { if ($this->rows !== NULL) { $this->observeCache = $this; return; } $accessedColumns = $this->accessedColumns; $this->loadRefCache(); if (!isset($this->refCacheCurrent['data'])) { // we have not fetched any data yet => init accessedColumns by cached accessedColumns $this->accessedColumns = $accessedColumns; $limit = $this->sqlBuilder->getLimit(); $rows = count($this->refTable->rows); if ($limit && $rows > 1) { $this->sqlBuilder->setLimit(NULL, NULL); } parent::execute(); $this->sqlBuilder->setLimit($limit, NULL); $data = array(); $offset = array(); $this->accessColumn($this->column); foreach ((array) $this->rows as $key => $row) { $ref =& $data[$row[$this->column]]; $skip =& $offset[$row[$this->column]]; if ($limit === NULL || $rows <= 1 || count($ref) < $limit && $skip >= $this->sqlBuilder->getOffset()) { $ref[$key] = $row; } else { unset($this->rows[$key]); } $skip++; unset($ref, $skip); } $this->refCacheCurrent['data'] = $data; $this->data =& $this->refCacheCurrent['data'][$this->active]; } $this->observeCache = $this; if ($this->data === NULL) { $this->data = array(); } else { foreach ($this->data as $row) { $row->setTable($this); // injects correct parent GroupedSelection } reset($this->data); } }
protected function execute() { if ($this->rows !== NULL) { return; } $referencing =& $this->refTable->referencing[$this->getSql()]; if ($referencing === NULL) { $limit = $this->limit; $rows = count($this->refTable->rows); if ($this->limit && $rows > 1) { $this->limit = NULL; } parent::execute(); $this->limit = $limit; $referencing = array(); $offset = array(); foreach ($this->rows as $key => $row) { $ref =& $referencing[$row[$this->column]]; $skip =& $offset[$row[$this->column]]; if ($limit === NULL || $rows <= 1 || count($ref) < $limit && $skip >= $this->offset) { $ref[$key] = $row; } else { unset($this->rows[$key]); } $skip++; unset($ref, $skip); } } $this->data =& $referencing[$this->active]; if ($this->data === NULL) { $this->data = array(); } }
protected function execute() { if ($this->rows !== NULL) { $this->observeCache = $this; return; } $hash = md5($this->getSql() . json_encode($this->sqlBuilder->getParameters())); $accessedColumns = $this->accessedColumns; $referencingBase =& $this->getRefTable($refPath)->referencing[$this->getCacheKey()]; $referencing =& $referencingBase[$refPath . $hash]; $this->rows =& $referencing['rows']; $this->referenced =& $referencing['refs']; $this->accessedColumns =& $referencing['accessed']; $this->observeCache =& $referencingBase['observeCache']; $refData =& $referencing['data']; if ($refData === NULL) { $this->accessedColumns = $accessedColumns; $limit = $this->sqlBuilder->getLimit(); $rows = count($this->refTable->rows); if ($limit && $rows > 1) { $this->sqlBuilder->setLimit(NULL, NULL); } parent::execute(); $this->sqlBuilder->setLimit($limit, NULL); $refData = array(); $offset = array(); $this->accessColumn($this->column); foreach ((array) $this->rows as $key => $row) { $ref =& $refData[$row[$this->column]]; $skip =& $offset[$row[$this->column]]; if ($limit === NULL || $rows <= 1 || count($ref) < $limit && $skip >= $this->sqlBuilder->getOffset()) { $ref[$key] = $row; } else { unset($this->rows[$key]); } $skip++; unset($ref, $skip); } } $this->observeCache = $this; $this->data =& $refData[$this->active]; if ($this->data === NULL) { $this->data = array(); } else { foreach ($this->data as $row) { $row->setTable($this); } reset($this->data); $this->checkReferenced = TRUE; } }
protected function execute() { if ($this->rows !== NULL) { return; } $hash = md5($this->getSql() . json_encode($this->parameters)); $referencing =& $this->refTable->referencing[$hash]; if ($referencing === NULL) { $limit = $this->limit; $rows = count($this->refTable->rows); if ($this->limit && $rows > 1) { $this->limit = NULL; } parent::execute(); $this->limit = $limit; $referencing = array(); $offset = array(); foreach ($this->rows as $key => $row) { $ref =& $referencing[$row[$this->column]]; $skip =& $offset[$row[$this->column]]; if ($limit === NULL || $rows <= 1 || count($ref) < $limit && $skip >= $this->offset) { $ref[$key] = $row; } else { unset($this->rows[$key]); } $skip++; unset($ref, $skip); } } $this->data =& $referencing[$this->active]; if ($this->data === NULL) { $this->data = array(); } else { foreach ($this->data as $row) { // update active id in the selection reference in case of requerying for another column // must be updated only the active key, not the Selection reference, because of caching accessed columns $row->getTable()->active = $this->active; } reset($this->data); } }
delete(){$condition=array($this->where,$this->parameters);$this->where[0]="$this->delimitedColumn = ?";$this->parameters[0]=$this->active;$return=parent::delete();list($this->where,$this->parameters)=$condition;return$return;}protected function execute(){if($this->rows!==NULL){return;}$hash=md5($this->getSql().json_encode($this->parameters));$referencing=&$this->referencing[$hash];if($referencing===NULL){$limit=$this->limit;$rows=count($this->refTable->rows);if($this->limit&&$rows>1){$this->limit=NULL;}parent::execute();$this->limit=$limit;$referencing=array();$offset=array();foreach($this->rows as$key=>$row){$ref=&$referencing[$row[$this->column]];$skip=&$offset[$row[$this->column]];if($limit===NULL||$rows<=1||(count($ref)<$limit&&$skip>=$this->offset)){$ref[$key]=$row;}else{unset($this->rows[$key]);}$skip++;unset($ref,$skip);}}$this->data=&$referencing[$this->active];if($this->data===NULL){$this->data=array();}else{reset($this->data);}}}}namespace Nette\DI{use