public function __construct() { $this->tableGatway = new TableGatway(new AnexosComentario(), "apostilas.anexos_comentarios"); //Mapeando o objeto para evitar falhas de seguraça $this->tableGatway->defineColuna("comentario_fk_anexo", new ResultSetMap(Column::INTEGER)); $this->tableGatway->defineColuna("comentario_texto", new ResultSetMap(Column::INTEGER)); $this->tableGatway->defineColuna("comentario_dt_hora", new ResultSetMap(Column::DATE_TIME)); $this->tableGatway->defineColuna("comentario_fk_usuario", new ResultSetMap(Column::INTEGER)); }
/** * Método que retorna o tópico pedido * @param int $topico O código do tópico buscado * @return Topico Um objeto contendo os dados do tópico * @param boolea $apenasMinistrados Define se deve exibir qualquer tópico ou apenas os já ministrados em aula * @throws LivroException */ public function getTopico($topico, $apenasMinistrados = TRUE) { if (!is_int($topico)) { throw new LivroException("O tópico informado não é válido"); } $select = new Select(); $tableGatway = new TableGatway(new Topico(), "apostilas.conteudo"); $tableGatway->defineColuna("pk_conteudo", new ResultSetMap(Column::INTEGER)); $select->columns("*, " . "apostilas.acompanhamento.data_aula as topico_data_aula," . "apostilas.acompanhamento.status as topico_status")->join("apostilas.capitulo", array("pk_capitulo" => "fk_capitulo"))->join("public.materia_vin", array("pk_materia_vin" => "fk_materia_vin"))->join("public.materia", array("pk_materia" => "fk_materia"))->join("public.materia_mae", array("pk_materia_mae" => "fk_materia_mae"))->join("public.area", array("pk_area" => "fk_area"))->join("apostilas.livro", array("pk_livro" => "fk_livro"))->join("apostilas.livro_cat", array("pk_livro_cat" => "fk_livro_cat")); if ((bool) $apenasMinistrados) { $select->join("apostilas.acompanhamento", array("pk_conteudo" => "fk_conteudo")); } else { $select->join("apostilas.acompanhamento", array("pk_conteudo" => "fk_conteudo"), Join::LEFT_JOIN); } $select->where(array("pk_conteudo" => $topico)); $resultSet = $tableGatway->selectObj($select); if (!$resultSet->rowCount()) { throw new LivroException("O tópico informado não foi encontrado ou ainda não foi dado em aula"); } return $resultSet->fetch(); }