$this->load->model('Nome_model');
Isto supõe que o modelo está no diretório geral dos modelos (system/application/models).
Agora, se pretendêssemos carregar um modelo que está em um subdiretório, teríamos que indicar a rota na função de carregamento do modelo.
$this->load->model('pasta_do_modelo/Nome_model');
Se quisermos carregar vários modelos de uma só vez, podemos fazê-lo passando um array com todos os modelos que desejamos carregar:
$this->load->model(array('Cliente_model','Fatura_model'));
Uma vez carregado um modelo, seus métodos para o acesso aos dados estarão disponíveis em nosso controlador, através do próprio objeto controlador, o nome do modelo que queremos acionar e a função que queremos invocar dentro do modelo.
$this->Nome_model->funcao_do_modelo();
Este arquivo de configuração se encontra na rota "system/application/config/autoload.php". Temos que modificar a listagem de modelos a serem carregados na variável de configuração "model", com um código como este:
$autoload['model'] = array('Usuario_model', 'Empresa_model');
Isto carregaria o modelo de usuários e o modelo de empresas em todas as páginas de nossa aplicação web com CodeIgniter.
class Fatura extends Controller {
function mostrar_fatura($id_fatura){
$this->load->model('Fatura_model');
$fatura = $this->Fatura_model->dame_fatura_id($id_fatura);
$this->load->view('mostrar_fatura', $fatura);
}
}
Este controlador chamado Fatura tem uma função para mostrar uma fatura, que recebe o identificador da fatura que se deseja ver.
Em tal função se carrega o modelo adequado para o trabalho com faturas "Fatura_model". A seguir chamamos a função dame_fatura_id() do modelo carregado, à que passamos o identificador da fatura que desejávamos ver. A função dame_fatura_id() do modelo retorna um array com os dados da fatura. Depois, mostramos os dados da fatura com a visão "mostrar_fatura" e com os dados de configuração, que é o array que obtivemos ao invocar a função do modelo.
Com isto pudemos ver um controlador simplificado, que utiliza tanto um modelo quanto uma visão para mostrar o conteúdo de uma fatura que foi trazida da base de dados. Por fim, vimos todos os componentes do MVC trabalhando por separado e coordenados desde o controlador. Espero que até este ponto tenha ficado claro ao menos o modo em que trabalharemos com CodeIgniter, embora ainda haja muitas coisas no ar que trataremos de explicar no futuro.
Veremos simplesmente o método mais simples para fazer a conexão com a base de dados, que é a conexão automática. Esta, CodeIgniter a realiza por nós em cada página que se solicite o servidor e temos que configurá-la no arquivo de configuração autoload.php (system/application/config/autoload.php). Nesse arquivo veremos um array de bibliotecas que se tem que incluir em todos os controladores, array "libraries". Nesse array temos que colocar a biblioteca 'database', de uma forma como esta:
$autoload['libraries'] = array('database', 'outras_bibliotecas...");
Além disso, teremos que modificar outro arquivo de configuração chamado database.php (system/application/config/database.php), colocando todos os dados da base de dados que queremos usar: o servidor, usuário, contra-senha, base de dados, etc. Por exemplo, isto seria um exemplo de configuração de uma base de dados que temos em local.
$db['default']['hostname'] = "localhost";
$db['default']['username'] = "root";
$db['default']['password'] = "";
$db['default']['database'] = "faturacao";
$db['default']['dbdriver'] = "mysql";
$db['default']['dbprefix'] = "";
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = "";
$db['default']['char_set'] = "utf8";
$db['default']['dbcollat'] = "utf8_general_ci";