コード例 #1
0
 /**
  * Retorna um conjunto de linhas da tabela.
  *
  * @param string|array|null $fields : os campos da tabela a serem retornados.
  *    Caso seja nulo, utilizamos o SQL wildcard '*', que retornará todos os campos.
  * @param string $order : a ordenação da busca "{<nome_campo><ASC|DESC>}*"
  * @param int count : a quantidade de linhas a retornar
  * @param int offset : a linha inicial a partir da qual começar a buscar (0-based)
  * @return array
  */
 public function getAll($fields = null, $order = null, $count = null, $offset = null)
 {
     $currentIntegrityCheck = $this->integrityCheck;
     if ($fields == null) {
         $fields = $this->getCols();
     } else {
         /* Caso não estejamos selecionando todas as colunas, é preciso que o
          * objeto Row retornado seja somente leitura. Isso se deve ao fato de
          * que ele não conterá toda a informação necessária para realizar uma
          * operação de UPDATE, por exemplo.
          */
         $diff = array_diff($this->getCols(), $fields);
         if (!empty($diff)) {
             // Fará com que os objetos Row gerados sejam somente leitura...
             $this->integrityCheck = false;
         }
     }
     $this->driver->select($this->getName(), $order, $count, $offset, $fields);
     $ret = array();
     $result = $this->driver->fetchAll();
     foreach ($result as $rowData) {
         $ret[] = $this->doCreateRow($rowData, true);
     }
     // Retorna integrityCheck ao seu valor anterior...
     $this->integrityCheck = $currentIntegrityCheck;
     return $ret;
 }