Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

Erro com a biblioteca ActiveRecord\Model (Message: Class 'ActiveRecord\Model' not found)

Boa tarde !

Estou fazendo o curso, de CodeIgniter, para implementar na empresa onde trabalho.

Porém estou com um problema na biblioteca : ActiveRecord\Model (Message: Class 'ActiveRecord\Model' not found)

Ela é estanciada dentro do meu model:

class Agendamento extends ActiveRecord\Model  {

Essa mesma biblioteca já está na raiz do projeto. Consegui me ajudar?

6 respostas

Oi Tiago, tudo bom?

Você consegue compartilhar o projeto com a gente?

Esse tipo de problema está relacionado ao processo de autoload configurado no framework. O que a gente vai ter que fazer é apontar essa biblioteca no autoloader do CodeIgniter

Boa tarde André! Segue:

O erro é esse aqui:

ActiveRecord\MysqliAdapter not found!

MEU PROJETO:

Mudei a versão para a versão 7.0.29 Também estou usando a versão do CodeIgniter

define('CI_VERSION', '2.1.0');

E no arquivo database, estou usando o mysqli, Já que o php7 não atende mais as funções anteriores do mysql

$db['default']['dbdriver'] = 'mysqli';

MEU CONTROLLER

class Agendamentos extends MY_Site_Controller {

    public function __construct() {
            parent::__construct();
    }
    public function meus_agendamentos() {
        $this->data['agendamento'] =     Agendamento::find('last', array(
            'conditions'    => array(
                'usuario_id = ? AND datahora > ? AND (status = ?         OR status = ?)', $this->data['usuario']['id'],
                date('Y-m-d'),
                'D-2',
                'E' )
        ));
    }
}

MEU MODEL

class Agendamento extends ActiveRecord\Model {
// Aqui dentro possui alguns metodos...
}

No meu entendimento, no controller tem um método chamado find, esse método é chamado dentro da ActiveRecord\Model, no qual está sendo herdada dentro do model Agendamento.

Porém não consigo encontrar, ou corrigir essa Biblioteca "ActiveRecord\MysqliAdapter" ?

Entendeu?

Opa, acho que no caso do php7 e versões mais recentes do framework vale a pena usar o driver do PDO ao invés das funções mysqli_*/mysql_*.

Nesse caso, sua configuração de driver deve ficar assim:

$db['default']['dbdriver'] = 'mysql';

Seu erro está ao carregar o adapter pro mysqli, que provavelmente não existe mesmo =)

Isso deve resolver o problema com o adapter, qualquer coisa é só falar.

Abraço

Olá André, Mudei aqui

$db['default']['dbdriver'] = 'mysql';

Porém apareceu outro erro:

Error: Call to undefined function mysql_pconnect() in C:\wamp64\www\agendamento\system\database\drivers\mysql\mysql_driver.php on line 91

Obrigado! Abraço!

solução!

Oi Tiago, perdão pela demora no retorno.

Parece que a chave mysql habilitaram as funções mysql_*.

Tenta essa config aqui:

$db['default'] = array(
    'dsn'  => 'mysql:host=localhost; dbname=myproject; charset=utf8;',
    'hostname' => 'localhost',
    'username' => 'seuUsuario',
    'password' => 'suaSenha',
    'database' => '',
    'dbdriver' => 'pdo',
    'dbprefix' => '',
    'pconnect' => FALSE,
    'db_debug' => TRUE,
    'char_set' => 'utf8',
    'dbcollat' => 'utf8_general_ci',
    'save_queries' => TRUE
); 

Roda e confirma com a gente aqui o resultado. A ideia é que ele encontre outro adapter e não dê o erro de autoload.

Abraço

Boa tarde André!

Eu coloquei justamente assim e funcionou. E também fiz algumas modificações na estrutura do projeto.

Muito obrigado pelo ajuda! Forte abraço.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software