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 Completo - #16 Model II (Inserção)

24/04/2018

Olá turma! Nessa aula continuaremos nosso trabalho no model. Vamos iniciar fazendo uma classe de inserção no banco de dados. Para isso, vamos fazer o serviço completo. Siga os passos abaixo:

Cadastrando clientes no sistema MVC

1 - Dentro de app/view crie o diretório cadastro e crie o arquivo Main.php
2 - O arquivo Main receberá o formulário de cadastro conforme código abaixo:

<form name="FormCadastro" id="FormCadastro" action="<?php echo DIRPAGE.'cadastro/cadastrar'; ?>" method="post">
    Nome: <input type="text" name="Nome" id="Nome"><br>
    Sexo:
    <select name="Sexo" id="Sexo">
        <option value="">Selecione</option>
        <option value="Masculino">Masculino</option>
        <option value="Feminino">Feminino</option>
    </select><br>
    Cidade: <input type="text" name="Cidade" id="Cidade"><br>
    <input type="submit" value="Cadastrar">
</form>

3 - Vamos criar a nossa rota editando o arquivo src/classes/ClassRoutes:

$this->Rota=array(
"cadastro"=>"ControllerCadastro"
);

4 - Vamos criar dentro de app/controller o ControllerCadastro. Esse controller ficará responsável por receber as variáveis do formulário e chamar o método de cadastro do model. Lembram-se que nunca o cliente acessa diretamente o model, há sempre um controller na frente? Então é isso que vamos fazer, blindar nosso model.

namespace App\Controller;

use Src\Classes\ClassRender;
use Src\Interfaces\InterfaceView;
use App\Model\ClassCadastro;

class ControllerCadastro extends ClassCadastro{

    protected $Nome;
    protected $Sexo;
    protected $Cidade;

    public function __construct()
    {
        $Render=new ClassRender();
        $Render->setTitle("Cadastro");
        $Render->setDescription("Faça seu cadastro.");
        $Render->setKeywords("cadastro de clientes, cadastro");
        $Render->setDir("cadastro");
        $Render->renderLayout();
    }

    #Receber variáveis
    private function recVariaveis()
    {
        if(isset($_POST['Nome'])){ $this->Nome=filter_input(INPUT_POST, 'Nome', FILTER_SANITIZE_SPECIAL_CHARS); }
        if(isset($_POST['Sexo'])){ $this->Sexo=filter_input(INPUT_POST, 'Sexo', FILTER_SANITIZE_SPECIAL_CHARS); }
        if(isset($_POST['Cidade'])){ $this->Cidade=filter_input(INPUT_POST, 'Cidade', FILTER_SANITIZE_SPECIAL_CHARS); }
    }

    #Chamar o método de cadastro da ClassCadastro
    public function cadastrar()
    {
        $this->recVariaveis();
        $this->cadastroClientes($this->Nome, $this->Sexo,$this->Cidade);
        echo "Cadastro efetuado com sucesso!";
    }
}

5 - Posteriormente iremos criar nossa ClassCadastro dentro de app/model. Esse arquivo sim será o nosso model com acesso direto ao DB.

namespace App\Model;

use App\Model\ClassConexao;

class ClassCadastro extends ClassConexao{

    private $Db;

    #Cadastrará os clientes no sistema
    protected function cadastroClientes($Nome , $Sexo , $Cidade)
    {
        $Id=0;
        $this->Db=$this->conexaoDB()->prepare("insert into teste values(:id , :nome , :sexo , :cidade)");
        $this->Db->bindParam(":id",$Id,\PDO::PARAM_INT);
        $this->Db->bindParam(":nome",$Nome,\PDO::PARAM_STR);
        $this->Db->bindParam(":sexo",$Sexo,\PDO::PARAM_STR);
        $this->Db->bindParam(":cidade",$Cidade,\PDO::PARAM_STR);
        $this->Db->execute();
    }
}

Repare no código acima que extendemos a classe conexão criada na última aula. Extendendo essa classe temos acesso aos métodos da classe PDO como o prepare e o bindParam.

Nas próximas aulas continuamos pelo model com o select, update e delete. Até lá!

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

Posts Relacionados

MVC Completo - #15 Model I
Iniciamos agora nossas aulas sobre model. Nessa primeira aula vamos criar nosso banco de dados, uma tabela de testes e a class de conexão ao banco de dados.
Saiba mais!
MVC Completo - #17 Model III (Pesquisa)
Nessa aula continuamos com nosso model, entretanto trabalharemos com a parte de pesquisa e seleção no MVC.
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!