Em Laravel, as validações de formulários e requisições são fundamentais para garantir que os dados enviados pelos usuários sejam válidos e seguros antes de serem processados ou armazenados no banco de dados. O Laravel oferece uma poderosa camada de validação que torna esse processo simples e eficiente.
Validação de formulários em Controladores:
Vamos começar com um exemplo simples de validação de um formulário enviado por um usuário em um controlador.
// app/Http/Controllers/UserController.php
namespace App\\\\Http\\\\Controllers;
use Illuminate\\\\Http\\\\Request;
class UserController extends Controller
{
public function store(Request $request)
{
$validatedData = $request->validate([
'name' => 'required|string|max:255',
'email' => 'required|email|unique:users,email|max:255',
'password' => 'required|string|min:6',
]);
// Aqui você pode processar e armazenar os dados válidos no banco de dados
// ...
return redirect()->route('home')->with('success', 'Usuário criado com sucesso!');
}
}
Neste exemplo, o método store()
é responsável por lidar com a criação de um novo usuário. Utilizamos o método validate()
do objeto $request
para validar os dados enviados pelo usuário. O método validate()
recebe um array associativo que define as regras de validação para cada campo do formulário.
required
: O campo é obrigatório.string
: O campo deve ser uma string.email
: O campo deve ser um endereço de e-mail válido.unique:users,email
: O campo deve ser único na tabela users
na coluna email
.max:255
: O campo deve ter no máximo 255 caracteres.min:6
: O campo deve ter no mínimo 6 caracteres.Se os dados não passarem na validação, o Laravel automaticamente redireciona o usuário de volta ao formulário com os erros de validação para serem exibidos na view.
Validação em Rotas e Requisições Personalizadas:
Você também pode realizar validações em rotas e requisições personalizadas usando Form Requests. Form Requests são classes que encapsulam as regras de validação e podem ser reutilizadas em várias rotas ou métodos.
// app/Http/Requests/CreateUserRequest.php
namespace App\\\\Http\\\\Requests;
use Illuminate\\\\Foundation\\\\Http\\\\FormRequest;
class CreateUserRequest extends FormRequest
{
public function rules()
{
return [
'name' => 'required|string|max:255',
'email' => 'required|email|unique:users,email|max:255',
'password' => 'required|string|min:6',
];
}
}
// app/Http/Controllers/UserController.php
namespace App\\\\Http\\\\Controllers;
use App\\\\Http\\\\Requests\\\\CreateUserRequest;
class UserController extends Controller
{
public function store(CreateUserRequest $request)
{
// Os dados já foram validados antes de chegar aqui
// ...
return redirect()->route('home')->with('success', 'Usuário criado com sucesso!');
}
}
No exemplo acima, criamos uma classe CreateUserRequest
que herda de FormRequest
e define as regras de validação para o formulário de criação de usuário. No controlador, em vez de utilizar o método validate()
diretamente, utilizamos a classe CreateUserRequest
para realizar a validação.
Esses são apenas alguns exemplos básicos de como realizar validações de formulários e requisições no Laravel. A validação é uma parte importante do desenvolvimento de aplicativos web para garantir a integridade dos dados e a segurança do sistema. O Laravel facilita esse processo com sua camada de validação poderosa e flexível, permitindo que você defina regras específicas para cada campo do formulário e garanta que os dados recebidos estejam corretos antes de serem processados. Lembre-se de consultar a documentação oficial do Laravel para obter mais informações detalhadas sobre validação e todas as regras disponíveis.