Home
Button Mobile Webdesign em Foco
Newsletter Webdesign em Foco
Support Webdesign em Foco
Contribuition Webdesign em Foco
Doe para a Webdesign em Foco
Suporte da Webdesign em Foco
Fechar

MVC, MVT e Template Engine - #7 Create e Read

07/06/2020

No tutorial de hoje iremos implementar no nosso sistema MVC um sistema de inserção de dados e de leitura desses dados no MySQL.

Create e Read no MVC - PHP

views/produto.blade.php

Na nossa view produto vamos criar os links redirecionando de acordo com a id setada no banco de dados:

@extends('templates.default')
@section('title','Produtos')
@section('content')
    <h1 class="center">Meus Produtos</h1>
    <a href="@php echo DIRPAGE.'produto_create'; @endphp">Adicionar</a>
    @if(count($data)>1)
        <table>
            <tr>
                <td>Nome</td>
                <td>Preço</td>
                <td>Ação</td>
            </tr>
            @foreach($data as $produtos)
                    <tr>
                        <td>{{$produtos->name}}</td>
                        <td>{{$produtos->price}}</td>
                        <td>
                            <a href="@php echo DIRPAGE.'produto/'.$produtos->id; @endphp">Ler</a> |
                        </td>
                    </tr>
            @endforeach
        </table>
    @else
        <strong>Nome: </strong>{{$data[0]->name}}<br>
        <strong>Preço: </strong>{{$data[0]->price}}
    @endif
@endsection

models/ProdutoModel.php

No nosso model vamos criar o método que selecionará o id específico pra gente e o método responsável por gravar os dados no banco (store).

#Exibe um produto específico
public function find($id)
{
    $query=$this->conectDB()->prepare("select * from produtos where id=?");
    $query->bindParam(1,$id,\PDO::PARAM_INT);
    $query->execute();
    return $data=$query->fetchAll(\PDO::FETCH_OBJ);
}

#Cadastrar no banco
public function store($name,$price)
{
    $id=0;
    $query=$this->conectDB()->prepare("insert into produtos values(?,?,?)");
    $query->bindParam(1,$id,\PDO::PARAM_INT);
    $query->bindParam(2,$name,\PDO::PARAM_STR);
    $query->bindParam(3,$price,\PDO::PARAM_STR);
    return $query->execute();
}

Com o código acima já é possível ler qualquer dado do nosso sistema. Agora partiremos para o create, ou seja, para inserção de dados no nosso sistema.

produto_create.blade.php

Primeiramente criaremos uma view pra receber o formulário de cadastro:

@extends('templates.default')
@section('title','Adicionar Produtos')
@section('content')
    {{$success ?? ''}}
    <form name="form1" id="form" method="post" action="@php echo DIRPAGE.'produto_create'; @endphp">
        <input name="name" id="name" placeholder="Nome:" type="text" required> <br>
        <input name="price" id="price" placeholder="Preço:" type="text" required> <br>
        <input type="submit" value="Cadastrar"> <br>
    </form>
@endsection

web/routes.php

Posteriormente iremos criar essa rota recém criada:

<?php
$routes=new \Controllers\RoutesController();
$routes->getRoute('','HomeController@index');
$routes->getRoute('produto','ProdutoController@index');
$routes->getRoute('produto_create','ProdutoController@create');
$routes->getRoute('contato','ContatoController@showContacts');

Na sequência precisamos criar o controller responsável por executar essa criação:

#Adicionar novos produtos
public function create()
{
    if(count($_POST)>0){
        $name=filter_input(INPUT_POST,'name',FILTER_DEFAULT);
        $price=filter_input(INPUT_POST,'price',FILTER_DEFAULT);
        if($this->store($name,$price)){
            $success='Dados inseridos com sucesso!';
            return $this->blade->render('produto_create',compact('success'));
        }
    }else{
        return $this->blade->render('produto_create');
    }
}

Por hoje é só! Sucesso nos códigos e na vida!

Precisando de uma ajudinha? webdesignemfoco@gmail.com

Receba as aulas da Webdesign em Foco em Seu Email
Suporte Webdesign em Foco

Posts Relacionados

MVC, MVT e Template Engine - #6 Models
No tutorial de hoje trabalharemos com models. Os models servem para manipular bancos de dados, webservices, dentre outros.
Saiba mais!
MVC, MVT e Template Engine - #8 Update e Delete
Nesse tutorial aprenderemos como realizar a parte de update / delete utilizando MVC e template engine blade.
Saiba mais!
MVC Completo
Neste curso aprenderemos como criar o padrão de projeto MVC completo, analisando desde sua estrutura até a programação.
Saiba mais!