This website uses cookies

Our website, platform and/or any sub domains use cookies to understand how you use our services, and to improve both your experience and our marketing relevance.

Como criar e aplicar regras de validação no Laravel

Updated on October 3, 2025

7 Min Read

Principais conclusões:

  • O sistema de validação do Laravel simplifica o processo de garantir a integridade e a segurança dos dados nas aplicações Web.
  • Oferece uma vasta gama de regras de validação incorporadas, permite regras personalizadas e fornece funcionalidades como validação condicional e pedidos de formulários para uma maior flexibilidade.
  • Ao utilizar o sistema de validação do Laravel de forma eficaz, os programadores podem evitar inconsistências de dados, melhorar a manutenção do código e melhorar a experiência geral do utilizador.

Já tiveste problemas em verificar os dados do utilizador nas tuas aplicações Web? É importante garantir que estes dados estão corretos, seguros e úteis. Mas definir boas regras de validação pode ser difícil, especialmente com formulários e dados complexos.

E se houvesse uma maneira mais fácil? O Laravel tem um forte sistema de validação que lida eficientemente com vários tipos de entrada, tornando tarefas como o upload de arquivos do Laravel mais seguras e confiáveis. Facilita a configuração e o uso de regras de validação. Com Laravel, não precisas de escrever um longo código de validação para manter os dados da tua aplicação sob controlo.

Então, como podes usar o sistema de validação do Laravel? Este post do blogue irá guiar-te. Tem instruções passo-a-passo, exemplos de código e dicas práticas. Quer sejas novo no Laravel ou um programador experiente, este blogue é para ti.

Porque é que a validação de dados é importante?

A validação de dados garante que os dados são corretos e fiáveis.

Isto é fundamental porque as decisões baseadas em dados errados podem ser dispendiosas. A verificação de dados impede que os erros entrem no sistema de dados. Poupa tempo e garante que os outros processos que utilizam esses dados não são prejudicados.

Também torna os dados consistentes utilizando regras definidas para o formato e estrutura dos dados. Isto é importante quando lida com muitos dados ou quando muitas pessoas estão a utilizar os dados. A consistência dos dados facilita o trabalho conjunto das equipas.

Considera o exemplo de uma loja de comércio eletrónico.

Quando os clientes fazem uma encomenda, fornecem informações como o nome, a morada e os dados de pagamento. Se estes dados não forem validados, as informações incorrectas podem conduzir a transacções falhadas, à entrega no endereço errado ou mesmo a problemas de segurança.

Assim, a validação dos dados é crucial para garantir o bom funcionamento da loja e a satisfação do cliente.

Regras de validação em Laravel

Ao criar aplicações Web com Laravel, é importante certificar-se de que as entradas do utilizador estão corretas. O Laravel facilita isso com seu sistema de verificação. Conhecer as diferentes regras de verificação ajuda-te a garantir que os dados estão corretos.

As regras de verificação do Laravel abrangem muitas situações. Aqui estão algumas regras chave:

Regras Descrição
required Garante que o campo está presente nos dados de entrada.
numeric Valida que a entrada é um valor numérico.
email Verifica se a entrada é um endereço de e-mail válido.
alpha Verifica se a entrada contém apenas caracteres alfabéticos.
min Especifica o valor mínimo permitido para a entrada numérica.
max Define o valor máximo permitido para a entrada numérica.
unique Garante que o valor de entrada é único numa tabela de base de dados especificada.
confirmed Faz corresponder o valor de entrada a um campo de confirmação.

Aplicar regras de validação

É um processo simples que envolve o aproveitamento da funcionalidade de validação fornecida pela estrutura. Segue-se um exemplo básico de aplicação de regras de validação num controlador:

função pública store(Request $request)
{
  $validatedData = $request->validate([
  'name' => 'required|string|max:255',
  'email' => 'required|email|unique:users',
  'password' => 'required|string|min:8|confirmed',
  ]);

  // Processa os dados validados
}

Configurar o Laravel para validação de dados

Adiciona regras condicionalmente

Em cenários do mundo real, podes precisar de aplicar regras de validação com base em determinadas condições. O Laravel permite-te adicionar regras condicionalmente ao teu processo de validação.

$rules = [
  'name' => 'required|string|max:255',
  'email' => 'obrigatório|email',
];
se ($someCondition) {
  $rules['additional_field'] = 'required|string';
}
$request->validate($rules);

Desbloqueia o poder do Laravel: validação fácil, zero dores de servidor

Simplifica seus fluxos de trabalho, abandona o gerenciamento de servidores e se concentra na construção. Cloudways torna a validação do Laravel muito fácil.

Regras de validação avançadas

Quando os sites se tornam mais complexos, precisamos de melhores formas de verificar os dados. O Laravel ajuda-nos a fazer isso com o seu forte sistema de verificação. Vamos ver como podes melhorar as tuas verificações.

Regras personalizadas

O Laravel permite-te fazer as tuas próprias verificações que se adequam às necessidades do teu site. Podes adicioná-las ao método de arranque do teu AppServiceProvider.

utiliza o Validador de validação de fachadas;

Validator::extend('custom_rule', function ($attribute, $value, $parameters, $validator) {
  // A tua lógica de validação personalizada aqui
  devolve $value == 'valor_personalizado';
});

Podes utilizar esta validação personalizada como qualquer outra.

$request->validate([
  'campo_personalizado' => 'regra_personalizada',
]);

Objectos de regras

O Laravel 10 trouxe-te objectos Rule. Estes permitem-te organizar melhor as tuas verificações. Podes criar um objeto Rule utilizando a interface Illuminate\Contracts\Validation\Rule.

utiliza Illuminate\Contracts\Validation\Rule;

class CustomRule implements Rule
{
  public function passes($attribute, $value)
  {
  // A tua lógica de validação aqui
  devolve $value == 'valor_personalizado';
  }

  função pública message()
  {
  devolve 'A validação falhou para esta regra personalizada.';
  }
}

Podes utilizar este objeto Regra quando validas dados.

$request->validate([
  'custom_field' => [nova CustomRule],
]);

Utiliza regras de validação avançadas

A utilização de objectos Rule torna os teus dados mais limpos. Podes fazer uma validação avançada utilizando vários objectos Rule.

utiliza App\Rules\CustomRule1;
utiliza App\Rules\CustomRule2;

$request->validate([
  'field1' => [nova CustomRule1, nova CustomRule2],
  'field2' => ['required', new CustomRule1],
]);

Mensagens de validação personalizadas em linha

Podes dar mensagens de erro personalizadas quando validas dados. Isto é útil quando as mensagens predefinidas não são suficientemente específicas:

$request->validate([
  'field' => 'required|numeric|between:1,10',
], [
  'field.between' => 'O atributo :deve estar entre 1 e 10.',
]);

Regras de validação personalizadas

As regras de validação personalizadas no Laravel permitem que os programadores web façam verificações adequadas aos seus sítios Web. Essas verificações podem lidar com necessidades únicas de dados ou verificações de lógica comercial. Vamos ver como criar e usar regras de verificação personalizadas no Laravel.

Uma forma de criar regras de verificação personalizadas é adicionando-as ao Validador do Laravel. No teu AppServiceProvider, dentro do método boot, podes usar o método extend para adicionar uma regra personalizada.

utiliza o Validador de validação de fachadas;

Validator::extend('custom_rule', function ($attribute, $value, $parameters, $validator) {
  // A tua lógica de validação personalizada aqui
  devolve $value == 'valor_desejado';
});

Agora, podes utilizar esta regra personalizada quando validares os dados:

$request->validate([
  'campo_personalizado' => 'regra_personalizada',
]);

Utiliza regras de validação personalizadas

Mensagens de validação personalizadas em linha

Também podes dar mensagens de erro personalizadas para uma melhor compreensão:

$request->validate([
  'field' => 'required|numeric|custom_rule',
], [
  'field.custom_rule' => 'O atributo :deve satisfazer os critérios de validação personalizados.',
]);

Utilização condicional

As regras de validação personalizadas são muito úteis quando se trata de verificações condicionais. Podes utilizar regras baseadas em situações específicas:

$request->validate([
  'field1' => 'required|numeric|custom_rule_if:other_field,value',
  'field2' => 'required|custom_rule_unless:another_field,value',
]);

Validação do pedido de formulário

A validação de pedido de formulário permite-te centralizar a lógica de validação para um pedido HTTP específico. Em vez de sobrecarregar os teus controladores com regras de validação, podes criar classes dedicadas a Pedidos de Formulário, mantendo o teu código organizado e fácil de manter.

Criar formulário Solicitar aulas

Etapa 1: Gerar classes de pedido de formulário

Para criar uma classe Form Request, podes utilizar a ferramenta de linha de comandos artisan do Laravel:

php artisan make:request MyFormRequest

Este comando irá gerar uma nova classe Form Request no diretório App\Http\Requests. Abre o ficheiro gerado e encontrarás um método rules onde podes definir as tuas regras de validação.

função pública rules()
{
  regressa [
  'name' => 'required|string|max:255',
  'email' => 'required|email|unique:users',
  // Adiciona mais regras conforme necessário
  ];
}

Passo 2: Criar pedidos de formulário no Controller

Agora que criaste a tua classe Pedido de Formulário, podes utilizá-la no teu método de controlador:

utiliza App\Http\Requests\MyFormRequest;

função pública store(MyFormRequest $request)
{
  // Neste momento, o pedido já foi validado
  // A tua lógica de negócio está aqui
}

O Laravel valida automaticamente o pedido de entrada utilizando as regras definidas na tua classe Form Request antes de chegar ao teu método controlador.

Autorizar pedidos de formulários

Os pedidos de formulário não só tratam da validação, como também fornecem uma forma conveniente de autorizar o pedido recebido. Podes definir um método authorize na tua classe Form Request:

função pública authorize()
{
  // Devolve verdadeiro ou falso com base na lógica de autorização
  Devolve $user->can('create', Post::class);
}

Se o método authorize retornar falso, o Laravel abortará automaticamente a solicitação com uma resposta 403 Forbidden.

Personaliza as mensagens de erro

Os Pedidos de Formulário facilitam a personalização das mensagens de erro. Podes substituir o método messages na tua classe Form Request:

função pública messages()
{
  regressa [
  'name.required' => 'O campo name é obrigatório.',
  'email.unique' => 'O endereço de correio eletrónico tem de ser único.',
  // Adiciona mais mensagens personalizadas conforme necessário
  ];
}

Lida com redireccionamentos de validação

Quando a validação de um Pedido de Formulário falha, o Laravel redirecciona automaticamente para a página anterior com os erros de validação exibidos na sessão. Isto simplifica o processo de informar os utilizadores sobre problemas de validação.

Resumo

A validação Laravel é uma ferramenta chave que ajuda a manter os teus dados seguros e corretos. Verifica os dados introduzidos pelo utilizador antes de serem utilizados, certificando-se de que se enquadram nas regras que definiu. O Laravel oferece muitas formas de verificar os teus dados. Mas a validação do Laravel é mais do que isso.

Também trata das permissões do utilizador e permite definir mensagens de erro personalizadas. Se as verificações não passarem, o Laravel envia os utilizadores de forma inteligente para a página anterior com os erros. Aprender sobre esses recursos, incluindo como o Laravel atenua as vulnerabilidades de atribuição em massa e fornece validação robusta, mostra como o Laravel fornece ferramentas fáceis de usar para criar aplicativos seguros e confiáveis. Essas proteções garantem que dados não autorizados não possam ser injetados em seus modelos e que todas as entradas do usuário atendam a critérios predefinidos antes de serem processadas.

1. Posso criar regras de validação personalizadas no Laravel?

A. Podes crer! O Laravel fornece um sistema flexível para criar regras de validação personalizadas através de closures ou estender regras existentes. Isto permite-te validar dados contra restrições específicas não cobertas por regras incorporadas.

2. Como posso testar as minhas regras de validação do Laravel para garantir que estão a funcionar corretamente?
A. Usar casos de teste PHPUnit é uma abordagem recomendada. Esses testes simulam vários cenários de dados para verificar se as regras se comportam como esperado, lidando com entradas válidas e inválidas.

3. Quais são as regras de validação incorporadas fornecidas pelo Laravel?
A. O Laravel oferece um conjunto diversificado de regras incorporadas, como obrigatório, numérico, e-mail, exclusivo e aceito. Elas cobrem as necessidades comuns de validação, eliminando a necessidade de código personalizado extenso.

Posso validar dados de matriz aninhada no Laravel?
A) Sim, podes validar dados de matrizes aninhadas utilizando a notação de pontos. Por exemplo:

$validatedData = $request->validate([
  'address.street' => 'required|string',
  'address.city' => 'required|string',
]);

Como validar um formulário no Laravel?
A) Podes validar um formulário utilizando o método validate() dentro de um controlador.

$validatedData = $request->validate([
  'email' => 'obrigatório|email',
  'password' => 'required|min:8',
]);

Share your opinion in the comment section. COMMENT NOW

Share This Article

Inshal Ali

Inshal é um profissional de marketing de conteúdos na Cloudways. Com formação em informática, competências de conteúdo e muita criatividade, ajuda as empresas a chegar ao céu e a ir mais além através de conteúdos que falam a língua dos seus clientes. Para além do trabalho, podes vê-lo sobretudo em alguns jogos online ou num campo de futebol.

×

Webinar: How to Get 100% Scores on Core Web Vitals

Join Joe Williams & Aleksandar Savkovic on 29th of March, 2021.

Do you like what you read?

Get the Latest Updates

Share Your Feedback

Please insert Content

Thank you for your feedback!

Do you like what you read?

Get the Latest Updates

Share Your Feedback

Please insert Content

Thank you for your feedback!

Quer experimentar a plataforma Cloudways em todo o seu esplendor?

Faça um tour guiado GRATUITO pela Cloudways e veja por si mesmo como é fácil gerenciar seu servidor e suas aplicações na principal plataforma de hospedagem em nuvem.

Iniciar mi recorrido