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.

Slide 06 adicionando produtos e mostrando produto selecionado

  • 1.
    Adicionando Produtos Mostrando osdados do Produto Adicionando Produtos Mostrando os dados do Produto Criado por: Raniere de Lima
  • 2.
    Adicionando Produtos Mostrando osdados do Produto Criado por: Raniere de Lima Adicionando Produtos Mostrando os dados do Produto
  • 3.
    Adicionando Produtos Mostrando osdados 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 osdados 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 osdados 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 osdados do Produto Criado por: Raniere de Lima
  • 7.
    Adicionando Produtos Mostrando osdados 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 osdados 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 osdados 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 osdados 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 osdados do Produto Criado por: Raniere de Lima Nosso código deve estar assim:
  • 12.
    Adicionando Produtos Mostrando osdados 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 osdados 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 osdados 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 osdados 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 osdados 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 osdados 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 osdados do Produto Criado por: Raniere de Lima Extra
  • 19.
    Adicionando Produtos Mostrando osdados 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 osdados 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.