slide 03 conectando no banco de dados, criação de helpers

24
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

Upload: raniere-de-lima

Post on 18-Jan-2017

145 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Slide 03   conectando no banco de dados, criação de helpers

Criado por: Raniere de Lima

Conectando no Banco de Dados Criando um Helper para nos

auxiliar

Conectando no Banco de Dados Criando um Helper para nos auxiliar

Page 2: Slide 03   conectando no banco de dados, criação de helpers

Criado por: Raniere de Lima

Conectando no Banco de Dados Criando um Helper para nos

auxiliar

Conectando ao Banco de Dados

Page 3: Slide 03   conectando no banco de dados, criação de helpers

Criado por: Raniere de Lima

Conectando no Banco de Dados Criando um Helper para nos

auxiliar

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;

Page 4: Slide 03   conectando no banco de dados, criação de helpers

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);

Page 5: Slide 03   conectando no banco de dados, criação de helpers

Criado por: Raniere de Lima

Conectando no Banco de Dados Criando um Helper para nos

auxiliar

Bem, sua tela deve ter ficado assim:

Page 6: Slide 03   conectando no banco de dados, criação de helpers

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 chocolatesã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 adicionarvalores 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 quandocarregamos nossa view passaremos nossos dados, então ficará:

$this->load->view(“produtos/index” , $dados);

Page 7: Slide 03   conectando no banco de dados, criação de helpers

Criado por: Raniere de Lima

Conectando no Banco de Dados Criando um Helper para nos

auxiliar

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.

Page 8: Slide 03   conectando no banco de dados, criação de helpers

Criado por: Raniere de Lima

Conectando no Banco de Dados Criando um Helper para nos

auxiliarO seu código irá ficar mais ou menos assim:

Agora teste sua aplicação acessando a pasta de produtos

Page 9: Slide 03   conectando no banco de dados, criação de helpers

Criado por: Raniere de Lima

Conectando no Banco de Dados Criando um Helper para nos

auxiliar

“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 criandoarray 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.)

Page 10: Slide 03   conectando no banco de dados, criação de helpers

Criado por: Raniere de Lima

Conectando no Banco de Dados Criando um Helper para nos

auxiliar

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”.

Page 11: Slide 03   conectando no banco de dados, criação de helpers

Criado por: Raniere de Lima

Conectando no Banco de Dados Criando um Helper para nos

auxiliar

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;

Page 12: Slide 03   conectando no banco de dados, criação de helpers

Criado por: Raniere de Lima

Conectando no Banco de Dados Criando um Helper para nos

auxiliar

Nós já estamos listando nossos produtos, só que de uma maneira bem feia, vamos fazeruma 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 Controllerfaz 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á umaClasse chamada Produtos_mode e extenderá de CI_Model.

E dentro desta classe terá uma função chama buscaTodos, esta função irá acessar a tabelaProdutos e deverá retornar todos os produtos que possuem nesta tabela.

Page 13: Slide 03   conectando no banco de dados, criação de helpers

Criado por: Raniere de Lima

Conectando no Banco de Dados Criando um Helper para nos

auxiliar

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 updatee 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(); }

}

Page 14: Slide 03   conectando no banco de dados, criação de helpers

Criado por: Raniere de Lima

Conectando no Banco de Dados Criando um Helper para nos

auxiliar

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.

Page 15: Slide 03   conectando no banco de dados, criação de helpers

Criado por: Raniere de Lima

Conectando no Banco de Dados Criando um Helper para nos

auxiliar

Iremos fazer tudo por partes, primeiro faremos o mais fácil, excluiremos os arraysPipa, 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();

Page 16: Slide 03   conectando no banco de dados, criação de helpers

Criado por: Raniere de Lima

Conectando no Banco de Dados Criando um Helper para nos

auxiliar

Page 17: Slide 03   conectando no banco de dados, criação de helpers

Criado por: Raniere de Lima

Conectando no Banco de Dados Criando um Helper para nos

auxiliar

Realize um teste acessando a pagina de Produtos.

Acesse o link:

http://localhost/codeigniter/index.php/produtos

Page 18: Slide 03   conectando no banco de dados, criação de helpers

Criado por: Raniere de Lima

Conectando no Banco de Dados Criando um Helper para nos

auxiliar

Page 19: Slide 03   conectando no banco de dados, criação de helpers

Criado por: Raniere de Lima

Conectando no Banco de Dados Criando um Helper para nos

auxiliar

“An?” Que erro maluco é esse?

A PHP Error was encounteredSeverity: NoticeMessage: Undefined property: Produtos::$db

Este erro é porque tentamos acessar o banco de dados, sem carrega-lo. Para corrigir esteerro, devemos ir no controller e carregar o banco de dados. E para carregar o banco de dadosutilizaremos nosso load, então:

$this->load->database();

E pronto, banco de dados carregado.

Page 20: Slide 03   conectando no banco de dados, criação de helpers

Criado por: Raniere de Lima

Conectando no Banco de Dados Criando um Helper para nos

auxiliar

Volte ao navegador e Atualize a Pagina.

Page 21: Slide 03   conectando no banco de dados, criação de helpers

Criado por: Raniere de Lima

Conectando no Banco de Dados Criando um Helper para nos

auxiliar

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, ouHelpers, podemos utilizar Helpers do CodeIgniter como criar nossos próprios helpers. Paracorrigir este utilizaremos um helper do CodeIgniter chamado url, para utilizarmos este Helper precisamos carrega-lo, então:

$this->load->helper(“url”);

Page 22: Slide 03   conectando no banco de dados, criação de helpers

Criado por: Raniere de Lima

Conectando no Banco de Dados Criando um Helper para nos

auxiliar

“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 sejamcarregados;.

Page 23: Slide 03   conectando no banco de dados, criação de helpers

Criado por: Raniere de Lima

Conectando no Banco de Dados Criando um Helper para nos

auxiliar

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 devereceber 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, ",“ , "."); }?>

Page 24: Slide 03   conectando no banco de dados, criação de helpers

Criado por: Raniere de Lima

Conectando no Banco de Dados Criando um Helper para nos

auxiliar

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.