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

Laravel para iniciantes

Esta é a quarta parte do tutorial “Criando um formulário de contato”. No post anterior, organizamos nossa aplicação com um Controller e vimos um pouco de injeção de dependência.

Nesse post vamos ver como validar os dados que o usuário envia ao submeter o formulário.


Passo 01: Crie uma classe de validação

Abra o terminal e execute a seguinte linha de comando:

Comando make:request Laravel

Este comando cria uma classe chamada ContatoEnviarRequest dentro de app/Http/Request

Passo 02: Editando o ContatoEnviarRequest

Edite a classe:

Aqui estamos apenas definindo quais campos são obrigatórios na requisição. Podemos adicionar neste array quantas regras forem necessárias. A lista de regras pode ser encontrada na documentação oficial:

http://laravel.com/docs/5.1/validation#available-validation-rules

Passo 03: Injetando a classe que criamos no método enviar

Agora basta fazermos uma troca. Ao invés de injetar o Request , vamos injetar o ContatoEnviarRequest . Como ela estende a request, não teremos problemas.

O ContatoController ficará assim:

 

Passo 04: Exibir mensagens de erro

Ao injetar o ContatoEnviarRequest  no método enviar, o laravel vai buscar os campos que deveriam existir na requisição (utilizando o método rules() ) e efetuar a verificação. Se a validação não passar, ele salva na sessão detalhes do erro e retorna um HTTP 302 redirecionando para a origem da requisição.

Acesse a aplicação e faça o teste:

Exemplo de erro 302 Laravel

Mas… Onde estão as mensagens?

Como disse, o laravel salva elas em uma sessão e disponibiliza dentro da variável $error que pode ser acessada na view. Vamos aditar a view resources/views/welcome.blade.php

Obs: A variável $erros  é uma instancia da classe ViewErrorBag.

Teste no navegador:

Exibindo mesnagens de erro

Obs: Você pode customizar a mensagem de erro. Dê uma olhada na documentação:

http://laravel.com/docs/5.1/validation#custom-error-messages

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

  • Pingback: Laravel para Iniciantes: Tutorial "ContactMe"- Parte 02()

  • Pingback: Laravel para Iniciantes: Tutorial "ContactMe"- Parte 01()

  • Nilson Alves

    Olá Jansen,

    Estou seguindo o tutorial e até aqui estava indo bem…nesse passo 4 o seguinte erro me é informado quando clico em “enviar” com o formulário em branco:

    …ErrorException in Validator.php line 424:
    Invalid argument supplied for foreach()

    Fiz algumas mudanças no foreach, mas sem sucesso…

    Aguardo seus comentários.

    • Boa tarde Nilson!

      Poderia postar o erro complento?

      • Nilson Alves

        Jensen,
        Segue tela…

        • Nilson Alves

          Olá Jansen,
          Esqueça esse erro…refiz a instalação de todo o ambiente(estava com dúvidas da instalação anterior) e refiz novamente e para minha surpresa funcionou perfeitamente até a conclusão do passo 4.
          Não refiz a parte da Interface(apesar de ter entendido o que você ensinou).
          Agora vou continuar o tutorial…