[Laravel] Iniciantes – Tutorial: Criando um formulário de contato – Parte 02

Laravel para iniciantes

Esta é a segunda parte do tutorial “Criando um formulário de contato”. No post anterior, configuramos o projeto e criamos uma simples rota.

Nesse post, vamos configurar um banco de dados para armazenar e depois listar as mensagens enviadas.

Você vai precisar de um SGDB instalado em seu computador. No tutorial, irei utilizar o MySQL.

Com tudo isso (risos) instalado, você pode começar a seguir os passos do tutorial:


Passo 01: Crie um banco de dados no MySQL

Existe várias formas de se fazer isso. Eu utilizei o terminal para criar o banco “contactMe”

Criando banco de dados no mysql

Fique a vontade para criar do seu jeito! 🙂

Passo 02: Configurar as credenciais no Laravel

O laravel organiza as variáveis do projeto dentro de um arquivo oculto na raiz. Encontre o arquivo .env e edite as variáveis “DB_” com as informações de conexão do seu banco de dados MySQL:

Você pode testar se a conexão está certa utilizando o Tinker:

Execute no tinker:

Se o nome do banco de dados aparecer, é porque está tudo certo!

Usando Tinker do Laravel

Troubleshooting

Passo 03: Criar a tabela “contatos” com as migrations do Laravel

Vamos utilizar o comando artisan do laravel para agilizar nosso trabalho. Execute:

Criando o model Contato no Laravel

Este comando criou uma classe chamada “Contato” que estende a “Model” dentro da pasta “app/”.

Ao passar o parâmetro  -m ele também criou o Schema da tabela “contatos”. Veja em  database/migrations/2015_10_14_125847_create_contatos_table.php .

Edite este arquivo adicionando as colunas que vamos precisar no nosso projeto:

Agora execute o seguinte comando no artisan para criar a tabela no banco de dados:

Rodando as migrations

Perceba que foi criada outras duas tabelas além da “contatos”. Elas vem na instalação padrão do projeto e mais pra frente falaremos sobre.

Você pode conferir no seu SGDB as tabelas criadas:

Conferindo tabelas criadas no mysql

Passo 04: Inserir dados na tabela ao clicar em enviar

Vamos alterar nossa closure que está na rota POST /enviar

Aqui, simplesmente instanciamos a classe Contato e informamos os atributos de acordo com o que foi passado na requisição. Como esta classe estende a Illuminate\Database\Eloquent\Model, você pode utilizar tranquilamente os métodos dela. (Exemplo:  $contato->save())

Inicie o servidor com o artisan:

Acesse o http://localhost:8000, preencha o formulário e clique em enviar:

Resposta de inclusão com sucesso

Passo 05: Listar as mensagens enviadas

Vamos ter que criar uma nova rota no laravel para exibir o HTML que lista os registros da tabela “contatos”. Algo do tipo:

“Ao receber uma requisição do tipo GET na URL “/listar”, executa o código da closure que retorna a view lista”

Para atender este requisito, abra o arquivo app/Http/routes.php  e adicione no final o seguinte código :

Aqui estou retornando a view  resources/views/lista.blade.php . Também estou enviando para a view os registros da tabela contato.

Antes de testar no navegador, precisamos criar a view:

Agora sim, acesse a rota http://localhost:8000/lista

Lista de mensagens


 

Na terceira parte, veremos mais detalhes de como organizar melhor nossa aplicação laravel.

Dúvidas? Fique a vontade nos comentários!