Пример #1
0
 /**
  * Método que retorna um objeto contendo o modelo de consulta básica.
  *
  * @return Select Uma consulta básica
  */
 public function select()
 {
     $sqlTurma = new SqlTurma();
     $sqlTopico = new SqlTopico();
     $t = $this->tg->getTabela(true);
     $select = new Select();
     return $select->from($this->tg->getTabela())->columns(array("{$t}_status" => 'status', "{$t}_data_aula" => 'data_aula', '*'))->join('public.turma', array('pk_turma' => "{$this->tg->getTabela()}.fk_turma"))->import($sqlTurma->select())->join('apostilas.conteudo', array('pk_conteudo' => "{$this->tg->getTabela()}.fk_conteudo"))->import($sqlTopico->select());
 }
Пример #2
0
 /**
  * Método que executa um select com base em um objeto Select informado
  * @param Select $select A consulta a ser realizada
  * @return ResultSetHydrator Um objetos contendo a resposta da interação
  */
 public function selectObj(Select $select)
 {
     if (!$select->tabelaIsset()) {
         $select->from($this->tabela);
     }
     //Executando a query e definindo os databind
     $prepare = $this->pdo->prepare($select);
     //Executando a validação do PDO
     foreach ($select->getWhere()->getColunas() as $coluna => $valor) {
         if (!isset($this->colunas[$coluna])) {
             //Este trecho deve ser reavaliado pois impede a busca usando como base
             //colunas de tabelas referenciadas por inner
             throw new SqlException("Uma das colunas informadas não é válida(select - {$coluna})", 10);
         }
         $prepare->bindValue(":{$coluna}", $valor, $this->colunas[$coluna]->getTipo());
     }
     //Executando de fato a consulta
     if (!$prepare->execute()) {
         throw new SqlException("Ocorreu um erro ao tentar executar a consulta");
     }
     //Retorno da consulta
     return new ResultSetHydrator($this->objeto, $prepare);
 }
Пример #3
0
 /**
  * Método que retorna todos os livros cadastrados
  * @param Filtros $filtros Objeto do sistema de filtros
  * @return ResultSetHydrator Objeto contendo a resposta da consulta
  */
 public function listarTodos(Filtros $filtros)
 {
     $where = "ano={$this->anoLetivo} " . "and apostilas.livro.status=" . Status::ATIVO;
     $select = new Select();
     return $this->tg->selectObj($select->from(array("livros" => $this->select()->from("apostilas.livro")->distinct("pk_livro")->where($where)))->order("livro_desc"));
 }