O documento discute a criação de um sistema de mercado online em CodeIgniter, realizando as seguintes tarefas: 1) cria a primeira view do sistema; 2) cria banco de dados e tabelas; 3) carrega dados em uma view; 4) conecta ao banco de dados; 5) lista produtos do banco de dados; 6) cria um helper para formatar preços. O autor guia passo a passo na configuração do projeto, model, controller e view para exibir produtos do banco de dados de forma dinâmica.
1. Conectando no Banco de Dados
Criando um Helper para nos
auxiliar
Conectando no Banco de Dados
Criando um Helper para nos auxiliar
Criado por: Raniere de Lima
2. Conectando no Banco de Dados
Criando um Helper para nos
auxiliar
Criado por: Raniere de Lima
Conectando ao
Banco de Dados
3. Conectando no Banco de Dados
Criando um Helper para nos
auxiliar
Criado por: Raniere de Lima
Hoje nós iremos começar a trabalhar no nosso sistema de um Mercado Online, e hoje
nós faremos as seguintes configurações:
• Criaremos a primeira view do sistema;
• Criaremos o nosso banco de dados e suas tabelas;
• Carregaremos dados em uma View;
• Conectaremos ao Banco de Dados;
• Listaremos nossos produtos;
• Criaremos um Helper para corrigir os preços;
4. Conectando no Banco de Dados
Criando um Helper para nos
auxiliar
Criado por: Raniere de Lima
Nós já temos uma View em produtos chamada Index, então nós iremos apenas modificar
o seu conteúdo porém antes de fazermos isso. Vamos aprender como passar dados para uma
View antes.
Na função Index localizada em Produtos, crie 3 arrays uma chamada Pipa, outra chamada
Carro e a terceira chamada Chocolate.
Cada array deve conter os campos nome, descrição e preço.
“Mas cara, como eu crio uma array desse tipo em PHP?”
Para criar uma array em PHP é simples, utilizaremos a função nativa do PHP chamada array()
e dentro dela os campos com seus valores. Ex:
$pipa = array(“nome”=>”Pipa muito legal”, “descricao”=>”Uma pipa muito legal”,
”preco”=>4.5);
5. Conectando no Banco de Dados
Criando um Helper para nos
auxiliar
Criado por: Raniere de Lima
Bem, sua tela deve ter ficado assim:
6. Conectando no Banco de Dados
Criando um Helper para nos
auxiliar
Criado por: Raniere de Lima
Nós fizemos nossa array, só que, como falar que essa pipa, esse carrinho e esse chocolate
são nossos produtos. Para isso nós temos que criar outra array que tenha o nome Produtos,
e essa array deve conter todos os produtos criados anteriormente, no PHP para adicionar
valores em uma array utilizamos o array_push(), que é uma função nativa do PHP também.
Então no nosso caso ficará:
$produtos = array();
array_push($produtos, $pipa, $carro, $chocolate );
Mas eu ainda não consigo passar os dados, para a minha View para ter algo com valores
Fixos, vamos criar outra array chamada dados que receberá como parâmetro:
“produtos”=>$produtos, agora sim vamos passar nosso dados para a view. Então quando
carregamos nossa view passaremos nossos dados, então ficará:
$this->load->view(“produtos/index” , $dados);
7. Conectando no Banco de Dados
Criando um Helper para nos
auxiliar
Criado por: Raniere de Lima
Agora que estamos recebendo alguns dados, vamos
exibi-los na nossa index, inicialmente criaremos uma
table, e depois colocaremos um foreach que receberá
como parâmetros $produtos e $produtos, cada
produto será uma tr e cada dado será uma td, ou seja
o nome, descrição e preço estarão em td.
8. Conectando no Banco de Dados
Criando um Helper para nos
auxiliar
Criado por: Raniere de Lima
O seu código irá ficar mais ou menos assim:
Agora teste sua aplicação acessando a pasta de produtos
9. Conectando no Banco de Dados
Criando um Helper para nos
auxiliar
Criado por: Raniere de Lima
“Beleza”, agora nós sabemos como passar dados para uma view e criamos nossa
Primeira página do sistema, mas imagina se nós tivéssemos 500 produtos, ficar criando
array desta maneira não é muito legal, seria legal fazermos “programágicamente”
pegando estes dados do nosso Banco de Dados.
Mas espera, nós ainda não temos um banco de dados, então vamos cria-lo:
Crie um Banco de Dados chamado CodeIgniter, e dentro dele uma tabela chamada
produtos, que terá os campos nome, descrição e preço. (Sem acentuação é claro.)
10. Conectando no Banco de Dados
Criando um Helper para nos
auxiliar
Criado por: Raniere de Lima
Agora que criamos o Banco de Dados, devemos configura-lo nosso projeto.
E para fazer isso, nós vamos na pasta Config e abriremos o arquivo chamado
database.php
Neste arquivo configuraremos nosso banco de dados, no final do arquivo terá as
configurações, informaremos apenas o hostname, database, username e password:
• Hostname = “Endereço do nosso Banco de Dados, no Windows é localhost,
no Linux e Mac é 127.0.0.1”;
• Database = “Nome do Banco de dados neste caso é CodeIgniter”;
• Username = “Nome do usuário do Banco de Dados neste caso é root”;
• Password = “Senha do usuário do Banco de dados, que por padrão é vazia”.
11. Conectando no Banco de Dados
Criando um Helper para nos
auxiliar
Criado por: Raniere de Lima
Das tarefas que tínhamos, nos já fizemos:
• Criaremos a primeira View do sistema;
• Criaremos o nosso banco de dados e suas tabelas;
• Carregaremos dados em uma View;
• Conectaremos ao Banco de Dados;
• Listaremos nossos produtos;
• Criaremos um Helper para corrigir os preços;
12. Conectando no Banco de Dados
Criando um Helper para nos
auxiliar
Criado por: Raniere de Lima
Nós já estamos listando nossos produtos, só que de uma maneira bem feia, vamos fazer
uma listagem melhor “programágicamente”, como vimos o conceito de MVC ou
Model-View-Controller, é que no View fica toda a parte visual para o cliente, no Controller
faz a comunicação entre o Model e a View podendo ou não passar dados, e no Model é
aonde criamos funções para a persistência de dados.
Já fizemos nosso view e nosso controller, então vamos criar nosso primeiro Model,
para isso vá na pasta Model e crie um arquivo chamada produtos_model.php, que terá uma
Classe chamada Produtos_mode e extenderá de CI_Model.
E dentro desta classe terá uma função chama buscaTodos, esta função irá acessar a tabela
Produtos e deverá retornar todos os produtos que possuem nesta tabela.
13. Conectando no Banco de Dados
Criando um Helper para nos
auxiliar
Criado por: Raniere de Lima
No CodeIgniter, para pegar dados podemos utilizar a função do database chamada get,
para inserir dados podemos utilizar a função insert, para atualizar os dados usamos update
e para deletar dados utilizamos o delete. Veremos como utilizar todas, um pouco mais para
frente.
Nosso primeiro model deve ficar assim:
class Produtos_model extends CI_Model{
public function buscaTodos(){
return $this->db->get("produtos")->result_array();
}
}
14. Conectando no Banco de Dados
Criando um Helper para nos
auxiliar
Criado por: Raniere de Lima
Agora que criamos um model para pegar os dados do banco de dados,
iremos utiliza-lo ao invés de criar diversas array, para fazer isso devemos:
1. Excluir os arrays Pipa, Carro e Chocolate, também devemos tirar o array_push;
2. Carregar o model Produtos_model;
3. Utilizar a função buscaTodos do Produtos_model;
4. Passar os dados do Banco de Dados para a View;
5. Melhorar a visualização na View da Table.
15. Conectando no Banco de Dados
Criando um Helper para nos
auxiliar
Criado por: Raniere de Lima
Iremos fazer tudo por partes, primeiro faremos o mais fácil, excluiremos os arrays
Pipa, Carro e Chocolate, junto do Array_push.
Depois, para carregar o model chamaremos uma função já conhecida:
$this->load->model(“produtos_model”);
O $this->load é utilizado para carregarmos tudo no CodeIgniter, seja uma View ou
um model, ou uma Library, Helper, dentre outros.
E atribuiremos o valor na nossa variável produtos:
$produtos = $this->produtos_model->buscaTodos();
16. Conectando no Banco de Dados
Criando um Helper para nos
auxiliar
Criado por: Raniere de Lima
17. Conectando no Banco de Dados
Criando um Helper para nos
auxiliar
Criado por: Raniere de Lima
Realize um teste acessando a pagina de Produtos.
Acesse o link:
http://localhost/codeigniter/index.php/produtos
18. Conectando no Banco de Dados
Criando um Helper para nos
auxiliar
Criado por: Raniere de Lima
19. Conectando no Banco de Dados
Criando um Helper para nos
auxiliar
Criado por: Raniere de Lima
“An?” Que erro maluco é esse?
A PHP Error was encountered
Severity: Notice
Message: Undefined property: Produtos::$db
Este erro é porque tentamos acessar o banco de dados, sem carrega-lo. Para corrigir este
erro, devemos ir no controller e carregar o banco de dados. E para carregar o banco de dados
utilizaremos nosso load, então:
$this->load->database();
E pronto, banco de dados carregado.
20. Conectando no Banco de Dados
Criando um Helper para nos
auxiliar
Criado por: Raniere de Lima
Volte ao navegador e Atualize a Pagina.
21. Conectando no Banco de Dados
Criando um Helper para nos
auxiliar
Criado por: Raniere de Lima
Temos agora uma pagina mais agradável, porém o que acontecesse se eu tentar acessar,
http://localhost/codeigniter/index.php/produtos/
Vemos a mesma pagina porém sem nenhum CSS, e agora?
Para nós auxiliar em questões como está o CodeIgniter nós fornece auxiliadores, ou
Helpers, podemos utilizar Helpers do CodeIgniter como criar nossos próprios helpers. Para
corrigir este utilizaremos um helper do CodeIgniter chamado url, para utilizarmos
este Helper precisamos carrega-lo, então:
$this->load->helper(“url”);
22. Conectando no Banco de Dados
Criando um Helper para nos
auxiliar
Criado por: Raniere de Lima
“Só que... Aonde vamos utilizar este helper????“
Podemos utilizar ele em formulário, carregamento de arquivos e etc. Neste caso,
utilizaremos este helper quando vamos carregar o BootStrap.
Então na linha que você carrega o BootStrap deve estar assim:
<link rel="stylesheet" href="../css/bootstrap.css">
Tudo o que deve ser feito é:
<link rel="stylesheet" href="<?=base_url("css/bootstrap.css")?>">
O base_url, irá sempre utilizar a url base impedindo que arquivos importantes não sejam
carregados;.
23. Conectando no Banco de Dados
Criando um Helper para nos
auxiliar
Criado por: Raniere de Lima
Agora nossa página está com uma cara mais amigável.
Mas seria legal que o campo Preço saísse formatado, ou seja R$ Reais, Centavos.
para fazermos isso, vamos criar um Helper. Vá na pasta Helper e crie um arquivo chamado,
Conversor_helper.php, que terá apenas uma função chamada numeroEmReias que deve
receber como parâmetro um numero.
E nesta função iremos formatar o numero recebido e retornaremos o numero já
formatamos, e com isso nossa função ficará assim:
<?php
function numeroEmReais($numero){
return "R$ ". number_format($numero, 2, ",“ , ".");
}
?>
24. Conectando no Banco de Dados
Criando um Helper para nos
auxiliar
Criado por: Raniere de Lima
Para utilizarmos, iremos carrega-lo no controller:
$this->load->helper(“conversor”);
E na view, na hora que carregamos os preços, utilizaremos o nosso helper:
<td><?=numeroEmReais($produto["preco"]) ?></td>
E agora nosso numero sairá formatado em Reais.