Skip to content

Laravel, entendendo regras de validações de forma simples

O Laravel possui em suas mãos um armamento pesado no que tange a parte de validações de dados. As vezes queremos notificar a um usuário sobre um campo específico no sistema (form em si) de forma mais controlada. Eu deixei pronto em um artigo como evitar code smell no Laravel na parte de validações, isso já mostra algo diferente na parte de validações e pode nos acompanhar e otimizar nosso código sem problemas!
Se quisermos PERSONALIZAR nossos erros para inputs específicos podemos simplesmente criar o método público messages e fazermos a festa com base no artigo já citado:

//essa é uma forma de exibir detalhes de um erro para um campo específico
public function messages()
{
    return [
      'nome.required' => 'O campo de nome é obrigatório',
      'nome.min' => 'O campo NOME precisa conter :min caracteres ou mais!'
        //se quiséssemos matar overal seria nome.* => 'Erro no campo nome!'
    ];
} 

Como visto acima, estamos criando uma regra para o input nome que vai ser requerido em todas as actions que usarem a classe ProdutosFormRequest como sendo o $request (ex: store( ProdutosFormRequest $request )) e assim ter o request personalizado.

Outra forma de ter o $errors (messagebag) trazendo tudo já traduzido é de duas formas:

1 - Ou focamos em "traduzir" nosso framework na parte de language e colocando tudo em PT-BR e mudamos também na parte de setup do app (pasta app/config/app.php),
2 - Ou mudamos na "força bruta" editando as validations que temos em /var/www/laravel/lang/en/validations.php

Bastando trocar, por exemplo que usamos regras min e required na nossa ProdutosFormRequest no método public rules() {}, podemos achar as linhas 'Required' e 'Min' e colocarmos a mensagem da forma customizada nossa.
Lembrando que NÃO É A MELHOR PRÁTICA FAZER ISSO, mas as vezes, se o tempo é curto podemos assim fazer!
Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.