Tenho uma classe abstrata BaseDAO
, está classe está sendo herdade na classe DissertativaDAO
, na BaseDAO
tem um construtor
que inicia a conexão com o banco de dados, eu posso acessar essa conexão pela classe DissertativaDAO
?
Pois quando tento usar esse método ele da um erro dizendo que a conexão está null
.
<?php
namespace App\Models\DAO;
use App\Lib\Conexao;
abstract class BaseDAO{
private $conexao;
public function __construct()
{
$this->conexao = Conexao::getConnection();
}
<?php
namespace App\Models\DAO;
use PDOException;
class TipoDissertativaDAO extends BaseDAO{
public function Salvar($dissertativaObj){
try {
$this->conexao->beginTransaction();
$stmt = $this->conexao->prepare("INSERT INTO questoes (id, titulo, questao, respostaPersonalizada, resposta, idAtividadeAcademica,
idProfessor, idRevisor, idRevisorLinguistico, anoProva, situacao, tipo, dificuldade, dataCriacao,
validade, numeroLinhas, linhasVisiveis, obrigatoria, nomeGrupo, tempo_estimado)
VALUES (:ID, :TITULO, :QUESTAO, :RESPOSTAPERSO, :RESPOSTA, :IDATIVIDADEACADEMICA, :IDPROFESSOR,
:IDREVISOR, :IDREVISORLINGUISTICO, :ANOPROVA, :SITUACAO, :TIPO, :DIFICULDADE, :DATACRIACAO, :VALIDADE,
:NUMLINHAS, :LINHASVISIVEIS, :OBRIGATORIA, :NOMEGRUPO, :TEMPOESTIMADO)");
$stmt->execute(array(
':ID'=>NULL,
':TITULO'=>$dissertativaObj->getTitulo(),
':QUESTAO'=>$dissertativaObj->getEnunciado(),
':RESPOSTAPERSO'=>$dissertativaObj->getRespostaPersonalizada(),
':RESPOSTA'=>$dissertativaObj->getGabarito(),
':IDATIVIDADEACADEMICA'=>$dissertativaObj->getAtividadeAcademica()->getId(),
':IDPROFESSOR'=>$dissertativaObj->getProfessor()->getId(),
':IDREVISOR'=>$dissertativaObj->getRevisorArea()->getId(),
':IDRESIVORLINGUISTICO'=>$dissertativaObj->getRevisorLinguistico()->getId(),
':ANOPROVA'=>$dissertativaObj->getAnoProva(),
':SITUACAO'=>1,
':TIPO'=> 'dissertativa',
':DIFICULDADE'=>$dissertativaObj->getDificuldade(),
':DATACRIACAO'=>$dissertativaObj->getValidade(),
':NUMLINHAS'=>$dissertativaObj->getNumeroLinhas(),
':LINHASVISIVEIS'=>$dissertativaObj->getLinhasVisiveis(),
':OBRIGATORIA'=>$dissertativaObj->getIsObrigatorio(),
':NOMEGRUPO'=>$dissertativaObj->getGrupoQuestao(),
':TEMPOESTIMADO'=>$dissertativaObj->getTempo_estimado()
));
$idAtual = $this->conexao->lastInsertId();
$stmt2 = $this->conexao->prepare("INSERT INTO questao_competencia (idQuestao , idcompetencia)
VALUES (:IDQUESTAO, :IDCOMPETENCIA)");
foreach ($dissertativaObj as $competencia){
$stmt2->execute(array(':IDQUESTAO'=>$idAtual, ':IDCOMPETENCIA'=>$competencia->getId()));
}
$stmt3 = $this->conexao->prepare('INSERT INTO questao_conhecimento (idQuestao, idConhecimento),
VALUES (:IDQUESTAO, :IDCONHECIMENTO)');
foreach ($dissertativaObj->getConhecimentos() as $conhecimento){
$stmt3->execute(array(':IDQUESTAO'=>$idAtual, ':IDCONHECIMENTO'=>$conhecimento->getId()));
}
$this->conexao->commit();
}catch (PDOException $e){
$e->getMessage();
$this->conexao->rollBack();
}
}