Laravel Validation: A validação de dados é um aspecto crucial em qualquer aplicação web. Ela garante que os dados enviados pelos usuários sejam consistentes, seguros e atendam aos requisitos do sistema. O Laravel oferece um sistema de validação robusto e intuitivo, permitindo que você defina regras de validação de forma simples e eficiente.
Neste artigo, exploraremos em detalhes o sistema de Laravel Validation, desde as regras básicas até as mais avançadas. Veremos como criar regras personalizadas, como exibir mensagens de erro de forma amigável e como integrar a validação em seus controladores e formulários.
Por que a validação é importante?
A validação de dados é importante por diversos motivos:
- Segurança: Protege sua aplicação contra ataques como injeção de SQL e XSS.
- Integridade dos dados: Garante que os dados armazenados no banco de dados estejam corretos e consistentes.
- Melhora da experiência do usuário: Fornece feedback imediato ao usuário sobre os erros de validação.
Como funciona a validação no Laravel?
Laravel Validation: O Laravel fornece uma API fluente para definir regras de validação. Essas regras são aplicadas aos dados de entrada, e se alguma regra for violada, uma exceção será lançada.
Regras de validação básicas
O Laravel inclui uma ampla variedade de regras de validação prontas para uso, como:
required
: O campo é obrigatório.min
: O campo deve ter no mínimo X caracteres.max
: O campo deve ter no máximo X caracteres.email
: O campo deve ser um endereço de e-mail válido.unique
: O valor do campo deve ser único em uma determinada tabela.
Exemplo:
PHP
$request->validate([
'name' => 'required|min:3',
'email' => 'required|email|unique:users',
'password' => 'required|min:8',
]);
Customizando mensagens de erro
Você pode personalizar as mensagens de erro para cada regra de validação:
PHP
$messages = [
'name.required' => 'O campo nome é obrigatório.',
'email.unique' => 'Este endereço de e-mail já está em uso.',
];
$request->validate([
'name' => 'required|min:3',
'email' => 'required|email|unique:users',
'password' => 'required|min:8'
], $messages);
Exibindo mensagens de erro nas views
Você pode exibir as mensagens de erro nas suas views usando o helper $errors
:
HTML
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
Validação em Controllers
A forma mais comum de validar dados é nos controladores:
PHP
public function store(Request $request)
{
$request->validate([
'name' => 'required|min:3',
'email' => 'required|email|unique:users',
'password' => 'required|min:8'
]);
return redirect()->route('login');
}
Validação em Requests
Você pode criar classes de request para encapsular a lógica de validação:
Bash
php artisan make:request StoreUserRequest
PHP
class StoreUserRequest extends FormRequest
{
public function authorize()
{
return true;
}
public function rules()
{
return [
'name' => 'required|min:3',
'email' => 'required|email|unique:users',
'password' => 'required|min:8'
];
}
}
PHP
public function store(StoreUserRequest $request)
{
//Se não tiver erro de validação nos dados, salva usuário no banco de dados;
return redirect()->route('login');
}
Regras de validação personalizadas
Regras de validação personalizadas permitem que você crie regras específicas para seus dados, que podem não estar disponíveis nas regras padrão do Laravel. Elas oferecem uma grande flexibilidade para validar dados de acordo com as necessidades do seu projeto.
Exemplo Prático: Validando um CPF
Vamos criar uma regra personalizada para validar um número de CPF brasileiro. Para isso, utilizaremos a biblioteca nicolaslopezj/cpf-validator
que oferece uma validação robusta de CPFs.
1. Instalar a biblioteca:
Bash
composer require nicolaslopezj/cpf-validator
2. Exemplo com Mensagem de Erro Personalizada:
PHP
use Illuminate\Support\Facades\Validator;
use Nicolaslopezj\CPFValidator\CPFValidator;
public function store(Request $request)
{
Validator::extend('cpf', function ($attribute, $value, $parameters, $validator) {
return CPFValidator::isValid($value);
})->replacer('cpf', 'CPF inválido');
$request->validate([
'cpf' => 'required|cpf',
]);
//Segue a lógica do que fazer com esse dado;
}
Explicando o código:
- Instalação da biblioteca: Adicionamos a biblioteca
nicolaslopezj/cpf-validator
ao nosso projeto para realizar a validação do CPF. - Criando a regra: A função
Validator::extend()
registra uma nova regra personalizada. A função de callback recebe o atributo, o valor, os parâmetros e o validador. - Utilizando a regra: Na validação do request, utilizamos a regra
cpf
criada anteriormente. - Mensagem de erro personalizada: O método
replacer()
permite definir uma mensagem de erro personalizada para a regra.
Conclusão
O sistema de validação do Laravel é uma ferramenta poderosa e flexível que permite garantir a integridade dos dados em suas aplicações. Ao dominar as diferentes formas de validação, você poderá criar aplicações mais seguras e robustas.
Neste artigo, exploramos os conceitos básicos de validação no Laravel, desde as regras básicas até a criação de regras personalizadas. Ao utilizar as ferramentas fornecidas pelo Laravel, você poderá:
- Melhorar a segurança: Proteger sua aplicação contra ataques como injeção de SQL e XSS.
- Melhorar a experiência do usuário: Fornecer feedback imediato sobre os erros de validação.
- Aumentar a confiabilidade: Garantir que os dados armazenados em seu banco de dados sejam consistentes e precisos.
Mas antes de dominar o Laravel, se for o seu caso, toda jornada tem um início. Vamos entender quais são os conhecimentos básicos necessários para aproveitar ao máximo este poderoso framework. Para iniciar seus estudos no Laravel, você precisará dominar as seguintes tecnologias:
E se você gosta do nosso conteúdo, não deixe de contribuir adquirindo os serviços e produtos dos nossos apoiadores e empresas que somos associados: