Introdução aos models do Codeigniter
Neste artigo vamos falar sobre Models no CodeIgniter. O CodeIgniter é baseado no modo de desenvolvimento Model-View-Controller. A MVC é uma abordagem de software que realiza a separação da lógica da aplicação de sua apresentação. Na prática, permite que nossas páginas web contenham o mínimo de script, já que a apresentação é separada do PHP.
Observação: Models estão opcionalmente disponíveis para se quisermos usar a abordagem MVC mais tradicional.
Model: Representa nossas estruturas de dados. Tipicamente, nossas classes model irão conter funções que nos ajudarão a buscar, inserir e substituir informações em nosso banco de dados.
No CodeIgniter models são classes PHP projetadas para trabalhar a informação em nosso banco de dados. Por exemplo, suponhamos que vamos usar o CodeIgniter para gerenciarmos um portal. Poderíamos ter uma classe model contendo funções para inserir, atualizar e buscar nossos dados referentes ao portal no banco. Vejamos agora um exemplo de uma classe model.
Listagem 1: Exemplo de classe Model
class Portalmodel extends Model {
var $title ='';
var $content ='';
var $Date ='';
function Portalmodel()
{
// Chamar o construtor do Model
parent::Model();
}
function get_last_ten_entries()
{
$query=$this->db->get('entries',10);
return $query->result();
}
function insert_entry()
{
$this->title =$_POST['title'];
$this->contents =$_POST['content'];
$this->date =time();
$this->db->insert('entries',$this);
}
function update_entry ()
{
$this->Date =time();
$this->db->update('entries',$this, array('id',$_POST[]));
}
}
Estrutura do Model no Codeigniter
As classes model devem ser armazenadas no seguinte diretório: application/models/. Podemos também fazer o armazenamento em subpastas.
O protótipo básico de uma classe model é:
Listagem 2: Model protótipo básico
class Model_name extends Model {
function Model_name()
{
// Chamar o construtor do Model
parent::Model();
}
}
Onde temos “model_name”, colocamos o nome da nossa classe. Uma coisa muito importante que não podemos esquecer é que os nomes de classes devem ter a inicial sempre maiúscula e também devemos nos certificar de que nossa classe estende a classe model básica.
Quando fomos salvar esse model, o seu nome será o nome da classe, só que todo em minúsculo. Por exemplo, se nossa classe é:
Listagem 3: Nome ao salvar a classe
class Artigos_model extends Model {
function Artigos_model()
{
parent::Model();
}
}
Então nesse caso nosso arquivo ficaria com o seguinte endereço no nosso diretório: Application/models/artigo_model.php.
Carregando um model no Codeigniter
Nossos models serão tipicamente carregados e chamados dentro das funções de nossos controllers. Para carregarmos um model, usaremos a seguinte função: $this->load->model(‘nome-do-model’);
Porém, caso nosso model esteja em uma subpasta, temos que incluir o caminho relativo ao nosso diretório. Por exemplo, se tivermos um model localizado em application/models/portal/artigo_model.php. iríamos carregar ele da seguinte forma: $this->load->model(‘portal/nome-do-model’);
Uma vez que tenhamos carregado, vamos acessar as funções de nosso model utilizando um objeto como o mesmo classe que havíamos criado:
$this->load->model(‘nome-do-model’);
$this->nome-do-model->function();
Se desejarmos atribuir nosso model a um objeto de nome diferente, podemos especificar isto através do seguinte parâmetro da função de carregamento:
$this->load->model(‘model-do-model’,’fubar’);
Vejamos um exemplo de um controller que carrega um model e então serve uma view.
Listagem 4: Carregando um model e servindo a uma view
<?php
class Inicial extends CI_Controller {
function artigos()
{
$this->load->model('artigos_model')
$data['query']=this->artigos_model->get_last_ten_entries();
$this->load->view('viewprincipal',$data);
}
}
?>
Conectando ao Banco de Dados
Quando carregamos um model, ele não se conecta automaticamente ao nosso banco, as seguinte opções de conexão estão disponíveis:
Podemos conectar usando os métodos padrões de banco de dados, descritos aqui, através de nossa classe controller ou de sua classe model.
Podemos mandar a função de carregamento do model para se autoconectar passando TRUE (booleano) através do terceiro parâmetro, como definido no arquivo de configuração de banco de dados: $this->load->model(‘nome-do-model’,’’,TRUE);
Podemos também passar as configurações manualmente, também através do arquivo de configuração de banco de dados. Encontrado no diretório application/config/database.php.
Listagem 5: Dados do arquivo application/config/database.php
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = '';
$db['default']['password'] = '';
$db['default']['database'] = '';
$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';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;
Afinal, o que entender sobre os models no CodeIgniter
Este artigo teve como objetivo apresentar um pouco dos models no CodeIgniter, não sendo obrigatória sua utilização em nossas aplicações web. Porém, nos deixando a disposição sua utilização, caso desejemos usar uma abordagem MVC completa. E tivemos a noção básica de como criarmos e carregarmos esses models. E por último vimos como modificar algumas configurações da conexão com o banco de dados.
Espero que tenha sido de fácil compreensão a todo os leitores. Fiquem a vontade para sugerir temas e dicas.
Abraços a todos e até ao próximo artigo.
Links Úteis
- Manual do PHP:
Site oficial do PHP - MYSQL:
Site Oficial do Mysql - PHP no Wikipedia:
Mais informações sobre o Wikipedia
Saiba mais sobre PHP ;)
- Introdução ao framework PHP CodeIgniter:
Veja neste artigo uma breve apresentação e introdução ao framework PHP CodeIgniter, que trabalha sobre o modelo MVC e nos fornece diversas ferramentas para agilizar o desenvolvimento das aplicações. - Trabalhando com controllers no CodeIgniter:
Veja neste artigo como funcionam os controllers no framework PHP CodeIgniter, como criar seus controllers e funções. - CodeIgniter: trabalhando com as Views do modelo MVC:
Veja neste artigo como funcionam as Views do modelo MVC no framework PHP CodeIgniter, entendendo como criá-las e manipulá-las em suas aplicações.
Confira outros conteúdos:
Black November
Desconto exclusivo para as primeiras 200 matrículas!
Pagamento anual
12x no cartão
De: R$ 69,00
Por: R$ 59,00
Total: R$ 708,00
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- 12 meses de acesso
Pagamento recorrente
Cobrado mensalmente no cartão
De: R$ 79,00
Por: R$ 64,00 /mês
Total: R$ 768,00
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- Fidelidade de 12 meses
- Não compromete o limite do seu cartão
<Perguntas frequentes>
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.