SlideShare uma empresa Scribd logo
Adicionando Produtos
Mostrando os dados do Produto
Adicionando Produtos
Mostrando os dados do Produto
Criado por: Raniere de Lima
Adicionando Produtos
Mostrando os dados do Produto
Criado por: Raniere de Lima
Adicionando Produtos
Mostrando os dados do
Produto
Adicionando Produtos
Mostrando os dados do Produto
Criado por: Raniere de Lima
Hoje nós iremos criar a função de Adicionar e Mostrar(Ou Listar) os produtos para os
clientes no Mercado Online, e hoje nós faremos as seguintes configurações:
• Criaremos uma View para adicionar os produtos;
• Criaremos a função no Controller produtos;
• Aprenderemos a utilizar a Session para pegar informações do Cliente;
• Adicionaremos um campo na tabela Produtos do Banco de Dados;
• Criaremos uma View só para Exibir os produtos;
• Conheceremos como utilizar e configurar as Rotas no CodeIgniter.
• Exercício;
Adicionando Produtos
Mostrando os dados do Produto
Criado por: Raniere de Lima
Para não deixar a tela do usuário cheia de informações de cadastros, vamos
verificar se o usuário está logado, e se tiver, exibiremos um anchor (link) para
encaminha-lo a tela de cadastro.
Para carregar este formulário, crie uma função no controller de produtos
chamada formulario, que irá apenas carregar uma view para o formulário.
Adicionando Produtos
Mostrando os dados do Produto
Criado por: Raniere de Lima
Só que se vamos criar um formulário, vamos precisar do helper form do CodeIgniter, e
Provavelmente iremos utiliza-la em outros locais. Caso você queira, carregue o form no
AutoLoad, caso não queria carregue o helper antes de carregar a view do Formulário.
Neste formulário deve conter os campos: Nome, Preço, Descrição e um botão de
Submit.
Adicionando Produtos
Mostrando os dados do Produto
Criado por: Raniere de Lima
Adicionando Produtos
Mostrando os dados do Produto
Criado por: Raniere de Lima
Só que, se nós vamos cadastrar um produto, precisaremos criar outra função do controller,
e uma função chamada cadastrar no nosso Produtos_model, que recebe como parâmetro um
Array de produtos.
Então criaremos estas funções.
Adicionando Produtos
Mostrando os dados do Produto
Criado por: Raniere de Lima
Só que, se nós vamos adicionar um produto no nosso Banco de Dados, seria legal saber quem
Está vendendo este produto. Só que na nossa tabela não temos este campo, então abriremos o
PhpMyAdmin, e na tabela produtos, criaremos um campo chamado vendedor_id.
Para fazer esta alteração, digitaremos o código abaixo para inserir este novo campo.
alter table produtos add column vendedor_id integer
Adicionando Produtos
Mostrando os dados do Produto
Criado por: Raniere de Lima
Agora que temos o campo do vendedor no banco de dados, vamos cadastrar nosso produto.
Crie uma função no Controller de produtos, chamada cadastrar que irá receber os dados
Informados pelo usuário. Só que, como pegaremos a informação de qual usuário está logado,
Se não temos o campo id_usuario no formulário.
Mas se o usuário está logado, ele já fez uma consulta no meu banco de dados , e para não ter
Consultar de novo, seria legal pegar a id da sessão, que é a id do usuário. Mas como fazer isso?
Crie uma variável chamada Usuário que recebe o usuário da sessão.
Ou seja:
$usuario = $this->session->userdata("usuario_logado");
Adicionando Produtos
Mostrando os dados do Produto
Criado por: Raniere de Lima
Logo após criamos o array com os dados do produto, precisaremos carregar o
model de produtos, já que iremos adicionar o nosso produto no Banco de Dados.
Após carregar, utilize o método salvar para salvarmos o produto no banco de dados. E
logo após salvar, iremos usar o flashdata, para informa que o produto foi adicionado
com sucesso, e depois iremos redirecionar para a tela inicial.
Adicionando Produtos
Mostrando os dados do Produto
Criado por: Raniere de Lima
Nosso código deve estar assim:
Adicionando Produtos
Mostrando os dados do Produto
Criado por: Raniere de Lima
Nosso controller já está pronto, porém não criamos a função salvar lá no produtos_model.
Então vamos criar, como vimos a função salvar recebe como parametro um array que
contem os dados do produto, e iremos inserir estes dados no nosso banco de dados, porém
Iremos inserir na tabela de produtos.
Com isso o código do produtos_model, deve ficar assim:
public function salva($produto){
$this->db->insert("produtos", $produto);
}
Adicionando Produtos
Mostrando os dados do Produto
Criado por: Raniere de Lima
Pronto, agora nós inserimos o nosso produto no banco de dados. Agora, nós já
inserimos e listamos os produtos, mas e se eu quisesse ver apenas um produto
especifico? Ou se eu quisesse ver os detalhes de um produto especifico?
Seria legal ter uma pagina, aonde ela iria exibir todos os dados de um produto
especifico.
Vamos criar então, porém, aonde vamos colocar isso?
Adicionando Produtos
Mostrando os dados do Produto
Aproveitando a nossa index, da pasta Produto. Vamos criar um link, que irá direcionar
para a pagina que detalha os produtos que passa a id. E para fazer isso vamos utilizar
um anchor, este Anchor vai substituir o nome do produto, e criará um link para mostrar
o produto.
Nossa index ficará assim:
<table id="tabela" class="table">
<?php foreach($produtos as $produto) : ?>
<tr>
<td><?=anchor("produtos/mostrar?id={$produto["id"]}",$produto["nome"])?></td>
<td><?=numeroEmReais($produto["preco"]) ?></td>
<td><?=$produto["descricao"] ?></td>
<?php endforeach ?>
<table>
O que o anchor está fazendo?
Está criando um link para o produtos, e exibindo o nome do produto.
Adicionando Produtos
Mostrando os dados do Produto
Criado por: Raniere de Lima
Vamos agora criar a função mostrar no controller Produtos, mas como iremos
procurar?
A id informada deve ser exatamente para isso, pois através dela iremos procurar no
banco de dados e retornaremos todos os valores da id.
Então já que vamos utiilizar o banco de dados, precisaremos carregar o
produtos_model, e depois utilizar uma função que busque por id, e depois exiba as
informações na tela.
Mas não temos essa função ainda, mas ela é bem simples de ser criada, passe a id
Para a função, verifique a tabela produtos, e retorne a linha no banco de dados,
enquanto (where), a id da linha for igual a id informada.
Adicionando Produtos
Mostrando os dados do Produto
Criado por: Raniere de Lima
Ou seja, nossa função no produtos_model ficará assim:
O row_array() diferente da result_array(), retorna apenas primeira linha encontrada no banco
de dados, enquanto a result_array, retorna todas as linhas.
Adicionando Produtos
Mostrando os dados do Produto
Criado por: Raniere de Lima
Agora que temos a nossa função, precisamos apenas utiliza-la e depois retorna os dados
dos produtos que recuperamos no nosso banco de dados, e utiliza os dados na view.
Então ficará semelhante a isso:
public function mostra(){
$id = $this->input->get(“id”);
$this->load->model("produtos_model");
$produto = $this->produtos_model->buscar($id);
$dados = array("produto" => $produto);
$this->load->load("produtos/mostra" , $dados);
}
Adicionando Produtos
Mostrando os dados do Produto
Criado por: Raniere de Lima
Extra
Adicionando Produtos
Mostrando os dados do Produto
Criado por: Raniere de Lima
Nossa url, não fica algo legal, quando acessamos o produto/mostra, pois fica:
http://localhost/CodeIgniter/index.php/produtos/mostra?id=1
Também não fica nada profissional, vamos melhorar essa url, eu quero que quando
acessarmos:
http://localhost/CodeIgniter/index.php/produtos/1
Vá para a mesma pagina, para fazer isso utilizaremos as rotas do CodeIgniter, para criar
Rota personalisada, abra o arquivo routes localizado na pasta Config.
No final do arquivo, crie a rota personalizada. Mas como?
Adicionando Produtos
Mostrando os dados do Produto
Criado por: Raniere de Lima
Siga o Padrão, para criar uma rota utiliza a variável $router, e informamos o link que
Deve ser acessados, e qual é a função daquele link.
Criar uma rota, é como criar um apelido para o link.
Para criar esta rota, ficará assim:
$route['produtos/(:num)'] = 'produtos/mostra/$1';
Apelido da rota = Controller e Função
Altere os arquivos necessários, para que a nova rota, seja a rota acessada pelo sistema.

Mais conteúdo relacionado

Destaque

Tatiana Santofimio Resume
Tatiana Santofimio Resume Tatiana Santofimio Resume
Tatiana Santofimio Resume
Tatiana Santofimio
 
Gran colisionador de hadrones
Gran colisionador de hadronesGran colisionador de hadrones
Gran colisionador de hadrones
Alex Chicaiza Toapaxi
 
Ibituach
IbituachIbituach
Parting and grooving timeline infographic
Parting and grooving timeline infographicParting and grooving timeline infographic
Parting and grooving timeline infographic
Sandvik Coromant
 
Técnicas de estudio
Técnicas de estudioTécnicas de estudio
Técnicas de estudio
Jhoan Fonseca
 
Using SmartURLs for Tracking Influence Marketing & Off-Site Content
Using SmartURLs for Tracking Influence Marketing & Off-Site ContentUsing SmartURLs for Tracking Influence Marketing & Off-Site Content
Using SmartURLs for Tracking Influence Marketing & Off-Site Content
gShift
 
The Power and Influence of an Emerging Social Class, by Marco Simões
The Power and Influence of an Emerging Social Class, by Marco SimõesThe Power and Influence of an Emerging Social Class, by Marco Simões
The Power and Influence of an Emerging Social Class, by Marco Simões
Ccaps Translation and Localization
 
WebRTC Browsers n Stacks Implementation differences
WebRTC Browsers n Stacks Implementation differencesWebRTC Browsers n Stacks Implementation differences
WebRTC Browsers n Stacks Implementation differences
Alexandre Gouaillard
 
Journalistes sur Twitter : une analyse des graphes
Journalistes sur Twitter : une analyse des graphesJournalistes sur Twitter : une analyse des graphes
Journalistes sur Twitter : une analyse des graphes
smyrnaios
 
10 ways to Boost your Company Page on LinkedIn
10 ways to Boost your Company Page on LinkedIn10 ways to Boost your Company Page on LinkedIn
10 ways to Boost your Company Page on LinkedIn
Real-Time OutSource
 

Destaque (11)

Tatiana Santofimio Resume
Tatiana Santofimio Resume Tatiana Santofimio Resume
Tatiana Santofimio Resume
 
Gran colisionador de hadrones
Gran colisionador de hadronesGran colisionador de hadrones
Gran colisionador de hadrones
 
Ibituach
IbituachIbituach
Ibituach
 
Parting and grooving timeline infographic
Parting and grooving timeline infographicParting and grooving timeline infographic
Parting and grooving timeline infographic
 
Técnicas de estudio
Técnicas de estudioTécnicas de estudio
Técnicas de estudio
 
All Big Scoop
All Big Scoop All Big Scoop
All Big Scoop
 
Using SmartURLs for Tracking Influence Marketing & Off-Site Content
Using SmartURLs for Tracking Influence Marketing & Off-Site ContentUsing SmartURLs for Tracking Influence Marketing & Off-Site Content
Using SmartURLs for Tracking Influence Marketing & Off-Site Content
 
The Power and Influence of an Emerging Social Class, by Marco Simões
The Power and Influence of an Emerging Social Class, by Marco SimõesThe Power and Influence of an Emerging Social Class, by Marco Simões
The Power and Influence of an Emerging Social Class, by Marco Simões
 
WebRTC Browsers n Stacks Implementation differences
WebRTC Browsers n Stacks Implementation differencesWebRTC Browsers n Stacks Implementation differences
WebRTC Browsers n Stacks Implementation differences
 
Journalistes sur Twitter : une analyse des graphes
Journalistes sur Twitter : une analyse des graphesJournalistes sur Twitter : une analyse des graphes
Journalistes sur Twitter : une analyse des graphes
 
10 ways to Boost your Company Page on LinkedIn
10 ways to Boost your Company Page on LinkedIn10 ways to Boost your Company Page on LinkedIn
10 ways to Boost your Company Page on LinkedIn
 

Semelhante a Slide 06 adicionando produtos e mostrando produto selecionado

Aula 05 banco de dados em asp.net (site do administrador - alterar e excluir)
Aula 05   banco de dados em asp.net (site do administrador - alterar e excluir)Aula 05   banco de dados em asp.net (site do administrador - alterar e excluir)
Aula 05 banco de dados em asp.net (site do administrador - alterar e excluir)
Gabriel Bugano
 
Versao 37255
Versao 37255Versao 37255
Versao 37255
Plataforma CORE
 
Versão 37255
Versão 37255Versão 37255
Versão 37255
Plataforma CORE
 
Passo a-passo-pedidos
Passo a-passo-pedidosPasso a-passo-pedidos
Passo a-passo-pedidos
Diego Alves
 
Ns tutorial so
Ns tutorial soNs tutorial so
Ns tutorial so
Marcelo Miranda
 
14 patterns-curso gxxbr
14 patterns-curso gxxbr14 patterns-curso gxxbr
14 patterns-curso gxxbr
Cristiano Rafael Steffens
 
Curso de Ruby on Rails - Aula 02
Curso de Ruby on Rails - Aula 02Curso de Ruby on Rails - Aula 02
Curso de Ruby on Rails - Aula 02
Maurício Linhares
 
Aula 06 banco de dados em asp.net (lado cliente)
Aula 06   banco de dados em asp.net (lado cliente)Aula 06   banco de dados em asp.net (lado cliente)
Aula 06 banco de dados em asp.net (lado cliente)
Gabriel Bugano
 
Semcomp - USP São Carlos - Desenvolvendo um aplicativo iOS com Swift
Semcomp - USP São Carlos - Desenvolvendo um aplicativo iOS com SwiftSemcomp - USP São Carlos - Desenvolvendo um aplicativo iOS com Swift
Semcomp - USP São Carlos - Desenvolvendo um aplicativo iOS com Swift
Juliana Chahoud
 
Aula 12/06 (SQLite)
Aula 12/06 (SQLite)Aula 12/06 (SQLite)
Aula 12/06 (SQLite)
Ricardo Longa
 
Aula 01 asp.net com fk
Aula 01   asp.net com fkAula 01   asp.net com fk
Aula 01 asp.net com fk
Gabriel Bugano
 
Cuso Ruby - Aula 05 - Testes com RSpec
Cuso Ruby - Aula 05 - Testes com RSpecCuso Ruby - Aula 05 - Testes com RSpec
Cuso Ruby - Aula 05 - Testes com RSpec
Maurício Linhares
 
[PYTHONSUL2018] Apresentação do Tutorial - Automação de Testes com Robot Fram...
[PYTHONSUL2018] Apresentação do Tutorial - Automação de Testes com Robot Fram...[PYTHONSUL2018] Apresentação do Tutorial - Automação de Testes com Robot Fram...
[PYTHONSUL2018] Apresentação do Tutorial - Automação de Testes com Robot Fram...
Mayara Fernandes
 
Cadastro de clientes em c#
Cadastro de clientes em c#Cadastro de clientes em c#
Cadastro de clientes em c#
André Luiz
 
Manual Coleta Pedidos
Manual Coleta PedidosManual Coleta Pedidos
Manual Coleta Pedidos
Estúdio Lepe
 
Java script aula 10 - angularjs
Java script   aula 10 - angularjsJava script   aula 10 - angularjs
Java script aula 10 - angularjs
Cristiano Pires Martins
 
12 db atualizacao-curso-gxxbr
12 db atualizacao-curso-gxxbr12 db atualizacao-curso-gxxbr
12 db atualizacao-curso-gxxbr
Cristiano Rafael Steffens
 
Produtividade e Qualidade
Produtividade e QualidadeProdutividade e Qualidade
Produtividade e Qualidade
Fernanda Paola Butarelli
 
Aula 03 asp.net com fk - grid view - excluir e alterar
Aula 03   asp.net com fk - grid view - excluir e alterarAula 03   asp.net com fk - grid view - excluir e alterar
Aula 03 asp.net com fk - grid view - excluir e alterar
Gabriel Bugano
 
Release Notes - Versao 1.11
Release Notes - Versao 1.11Release Notes - Versao 1.11
Release Notes - Versao 1.11
Plataforma CORE
 

Semelhante a Slide 06 adicionando produtos e mostrando produto selecionado (20)

Aula 05 banco de dados em asp.net (site do administrador - alterar e excluir)
Aula 05   banco de dados em asp.net (site do administrador - alterar e excluir)Aula 05   banco de dados em asp.net (site do administrador - alterar e excluir)
Aula 05 banco de dados em asp.net (site do administrador - alterar e excluir)
 
Versao 37255
Versao 37255Versao 37255
Versao 37255
 
Versão 37255
Versão 37255Versão 37255
Versão 37255
 
Passo a-passo-pedidos
Passo a-passo-pedidosPasso a-passo-pedidos
Passo a-passo-pedidos
 
Ns tutorial so
Ns tutorial soNs tutorial so
Ns tutorial so
 
14 patterns-curso gxxbr
14 patterns-curso gxxbr14 patterns-curso gxxbr
14 patterns-curso gxxbr
 
Curso de Ruby on Rails - Aula 02
Curso de Ruby on Rails - Aula 02Curso de Ruby on Rails - Aula 02
Curso de Ruby on Rails - Aula 02
 
Aula 06 banco de dados em asp.net (lado cliente)
Aula 06   banco de dados em asp.net (lado cliente)Aula 06   banco de dados em asp.net (lado cliente)
Aula 06 banco de dados em asp.net (lado cliente)
 
Semcomp - USP São Carlos - Desenvolvendo um aplicativo iOS com Swift
Semcomp - USP São Carlos - Desenvolvendo um aplicativo iOS com SwiftSemcomp - USP São Carlos - Desenvolvendo um aplicativo iOS com Swift
Semcomp - USP São Carlos - Desenvolvendo um aplicativo iOS com Swift
 
Aula 12/06 (SQLite)
Aula 12/06 (SQLite)Aula 12/06 (SQLite)
Aula 12/06 (SQLite)
 
Aula 01 asp.net com fk
Aula 01   asp.net com fkAula 01   asp.net com fk
Aula 01 asp.net com fk
 
Cuso Ruby - Aula 05 - Testes com RSpec
Cuso Ruby - Aula 05 - Testes com RSpecCuso Ruby - Aula 05 - Testes com RSpec
Cuso Ruby - Aula 05 - Testes com RSpec
 
[PYTHONSUL2018] Apresentação do Tutorial - Automação de Testes com Robot Fram...
[PYTHONSUL2018] Apresentação do Tutorial - Automação de Testes com Robot Fram...[PYTHONSUL2018] Apresentação do Tutorial - Automação de Testes com Robot Fram...
[PYTHONSUL2018] Apresentação do Tutorial - Automação de Testes com Robot Fram...
 
Cadastro de clientes em c#
Cadastro de clientes em c#Cadastro de clientes em c#
Cadastro de clientes em c#
 
Manual Coleta Pedidos
Manual Coleta PedidosManual Coleta Pedidos
Manual Coleta Pedidos
 
Java script aula 10 - angularjs
Java script   aula 10 - angularjsJava script   aula 10 - angularjs
Java script aula 10 - angularjs
 
12 db atualizacao-curso-gxxbr
12 db atualizacao-curso-gxxbr12 db atualizacao-curso-gxxbr
12 db atualizacao-curso-gxxbr
 
Produtividade e Qualidade
Produtividade e QualidadeProdutividade e Qualidade
Produtividade e Qualidade
 
Aula 03 asp.net com fk - grid view - excluir e alterar
Aula 03   asp.net com fk - grid view - excluir e alterarAula 03   asp.net com fk - grid view - excluir e alterar
Aula 03 asp.net com fk - grid view - excluir e alterar
 
Release Notes - Versao 1.11
Release Notes - Versao 1.11Release Notes - Versao 1.11
Release Notes - Versao 1.11
 

Último

Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
Danilo Pinotti
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
TomasSousa7
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
Momento da Informática
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
joaovmp3
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
WELITONNOGUEIRA3
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
Faga1939
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
Momento da Informática
 

Último (8)

Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
 

Slide 06 adicionando produtos e mostrando produto selecionado

  • 1. Adicionando Produtos Mostrando os dados do Produto Adicionando Produtos Mostrando os dados do Produto Criado por: Raniere de Lima
  • 2. Adicionando Produtos Mostrando os dados do Produto Criado por: Raniere de Lima Adicionando Produtos Mostrando os dados do Produto
  • 3. Adicionando Produtos Mostrando os dados do Produto Criado por: Raniere de Lima Hoje nós iremos criar a função de Adicionar e Mostrar(Ou Listar) os produtos para os clientes no Mercado Online, e hoje nós faremos as seguintes configurações: • Criaremos uma View para adicionar os produtos; • Criaremos a função no Controller produtos; • Aprenderemos a utilizar a Session para pegar informações do Cliente; • Adicionaremos um campo na tabela Produtos do Banco de Dados; • Criaremos uma View só para Exibir os produtos; • Conheceremos como utilizar e configurar as Rotas no CodeIgniter. • Exercício;
  • 4. Adicionando Produtos Mostrando os dados do Produto Criado por: Raniere de Lima Para não deixar a tela do usuário cheia de informações de cadastros, vamos verificar se o usuário está logado, e se tiver, exibiremos um anchor (link) para encaminha-lo a tela de cadastro. Para carregar este formulário, crie uma função no controller de produtos chamada formulario, que irá apenas carregar uma view para o formulário.
  • 5. Adicionando Produtos Mostrando os dados do Produto Criado por: Raniere de Lima Só que se vamos criar um formulário, vamos precisar do helper form do CodeIgniter, e Provavelmente iremos utiliza-la em outros locais. Caso você queira, carregue o form no AutoLoad, caso não queria carregue o helper antes de carregar a view do Formulário. Neste formulário deve conter os campos: Nome, Preço, Descrição e um botão de Submit.
  • 6. Adicionando Produtos Mostrando os dados do Produto Criado por: Raniere de Lima
  • 7. Adicionando Produtos Mostrando os dados do Produto Criado por: Raniere de Lima Só que, se nós vamos cadastrar um produto, precisaremos criar outra função do controller, e uma função chamada cadastrar no nosso Produtos_model, que recebe como parâmetro um Array de produtos. Então criaremos estas funções.
  • 8. Adicionando Produtos Mostrando os dados do Produto Criado por: Raniere de Lima Só que, se nós vamos adicionar um produto no nosso Banco de Dados, seria legal saber quem Está vendendo este produto. Só que na nossa tabela não temos este campo, então abriremos o PhpMyAdmin, e na tabela produtos, criaremos um campo chamado vendedor_id. Para fazer esta alteração, digitaremos o código abaixo para inserir este novo campo. alter table produtos add column vendedor_id integer
  • 9. Adicionando Produtos Mostrando os dados do Produto Criado por: Raniere de Lima Agora que temos o campo do vendedor no banco de dados, vamos cadastrar nosso produto. Crie uma função no Controller de produtos, chamada cadastrar que irá receber os dados Informados pelo usuário. Só que, como pegaremos a informação de qual usuário está logado, Se não temos o campo id_usuario no formulário. Mas se o usuário está logado, ele já fez uma consulta no meu banco de dados , e para não ter Consultar de novo, seria legal pegar a id da sessão, que é a id do usuário. Mas como fazer isso? Crie uma variável chamada Usuário que recebe o usuário da sessão. Ou seja: $usuario = $this->session->userdata("usuario_logado");
  • 10. Adicionando Produtos Mostrando os dados do Produto Criado por: Raniere de Lima Logo após criamos o array com os dados do produto, precisaremos carregar o model de produtos, já que iremos adicionar o nosso produto no Banco de Dados. Após carregar, utilize o método salvar para salvarmos o produto no banco de dados. E logo após salvar, iremos usar o flashdata, para informa que o produto foi adicionado com sucesso, e depois iremos redirecionar para a tela inicial.
  • 11. Adicionando Produtos Mostrando os dados do Produto Criado por: Raniere de Lima Nosso código deve estar assim:
  • 12. Adicionando Produtos Mostrando os dados do Produto Criado por: Raniere de Lima Nosso controller já está pronto, porém não criamos a função salvar lá no produtos_model. Então vamos criar, como vimos a função salvar recebe como parametro um array que contem os dados do produto, e iremos inserir estes dados no nosso banco de dados, porém Iremos inserir na tabela de produtos. Com isso o código do produtos_model, deve ficar assim: public function salva($produto){ $this->db->insert("produtos", $produto); }
  • 13. Adicionando Produtos Mostrando os dados do Produto Criado por: Raniere de Lima Pronto, agora nós inserimos o nosso produto no banco de dados. Agora, nós já inserimos e listamos os produtos, mas e se eu quisesse ver apenas um produto especifico? Ou se eu quisesse ver os detalhes de um produto especifico? Seria legal ter uma pagina, aonde ela iria exibir todos os dados de um produto especifico. Vamos criar então, porém, aonde vamos colocar isso?
  • 14. Adicionando Produtos Mostrando os dados do Produto Aproveitando a nossa index, da pasta Produto. Vamos criar um link, que irá direcionar para a pagina que detalha os produtos que passa a id. E para fazer isso vamos utilizar um anchor, este Anchor vai substituir o nome do produto, e criará um link para mostrar o produto. Nossa index ficará assim: <table id="tabela" class="table"> <?php foreach($produtos as $produto) : ?> <tr> <td><?=anchor("produtos/mostrar?id={$produto["id"]}",$produto["nome"])?></td> <td><?=numeroEmReais($produto["preco"]) ?></td> <td><?=$produto["descricao"] ?></td> <?php endforeach ?> <table> O que o anchor está fazendo? Está criando um link para o produtos, e exibindo o nome do produto.
  • 15. Adicionando Produtos Mostrando os dados do Produto Criado por: Raniere de Lima Vamos agora criar a função mostrar no controller Produtos, mas como iremos procurar? A id informada deve ser exatamente para isso, pois através dela iremos procurar no banco de dados e retornaremos todos os valores da id. Então já que vamos utiilizar o banco de dados, precisaremos carregar o produtos_model, e depois utilizar uma função que busque por id, e depois exiba as informações na tela. Mas não temos essa função ainda, mas ela é bem simples de ser criada, passe a id Para a função, verifique a tabela produtos, e retorne a linha no banco de dados, enquanto (where), a id da linha for igual a id informada.
  • 16. Adicionando Produtos Mostrando os dados do Produto Criado por: Raniere de Lima Ou seja, nossa função no produtos_model ficará assim: O row_array() diferente da result_array(), retorna apenas primeira linha encontrada no banco de dados, enquanto a result_array, retorna todas as linhas.
  • 17. Adicionando Produtos Mostrando os dados do Produto Criado por: Raniere de Lima Agora que temos a nossa função, precisamos apenas utiliza-la e depois retorna os dados dos produtos que recuperamos no nosso banco de dados, e utiliza os dados na view. Então ficará semelhante a isso: public function mostra(){ $id = $this->input->get(“id”); $this->load->model("produtos_model"); $produto = $this->produtos_model->buscar($id); $dados = array("produto" => $produto); $this->load->load("produtos/mostra" , $dados); }
  • 18. Adicionando Produtos Mostrando os dados do Produto Criado por: Raniere de Lima Extra
  • 19. Adicionando Produtos Mostrando os dados do Produto Criado por: Raniere de Lima Nossa url, não fica algo legal, quando acessamos o produto/mostra, pois fica: http://localhost/CodeIgniter/index.php/produtos/mostra?id=1 Também não fica nada profissional, vamos melhorar essa url, eu quero que quando acessarmos: http://localhost/CodeIgniter/index.php/produtos/1 Vá para a mesma pagina, para fazer isso utilizaremos as rotas do CodeIgniter, para criar Rota personalisada, abra o arquivo routes localizado na pasta Config. No final do arquivo, crie a rota personalizada. Mas como?
  • 20. Adicionando Produtos Mostrando os dados do Produto Criado por: Raniere de Lima Siga o Padrão, para criar uma rota utiliza a variável $router, e informamos o link que Deve ser acessados, e qual é a função daquele link. Criar uma rota, é como criar um apelido para o link. Para criar esta rota, ficará assim: $route['produtos/(:num)'] = 'produtos/mostra/$1'; Apelido da rota = Controller e Função Altere os arquivos necessários, para que a nova rota, seja a rota acessada pelo sistema.