10. Atualizar o código das funções de Validação de dados

Ao desenvolver uma aplicação web robusta, os programadores frequentemente precisam validar dados recebidos dos utilizadores para garantir a integridade e a segurança dos dados. No Laravel, este processo de validação é simplificado através do uso de classes de Request personalizadas. Neste capítulo, vamos explorar como atualizar o código das funções de validação de dados utilizando as classes StoreProdutoRequest e UpdateProdutoRequest, que estendem FormRequest.

Implementação de StoreProdutoRequest e UpdateProdutoRequest

Em Laravel, FormRequest é uma classe que fornece uma abordagem limpa para validar os dados das requisições HTTP recebidos pela aplicação. Estas classes já foram criadas no nosso projeto ao criarmos os modelos. Vamos agora configurar cada uma destas classes para definir as regras de validação específicas para as requisições de criação e atualização de produtos.

Atualizar o StoreProdutoRequest

Abra app/Http/Requests/StoreProdutoRequest.php e modifique-o para incluir as regras de validação necessárias para a criação de um novo produto.

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class StoreProdutoRequest extends FormRequest
{
    public function authorize()
    {
        return true; // Permite que todas as requisições sejam autorizadas.
    }

    public function rules()
    {
        return [
            'code' => 'required|string|max:50|unique:produtos,code',
            'name' => 'required|string|max:250',
            'quantity' => 'required|integer|min:1|max:10000',
            'price' =>  'required|numeric|gt:0',
            'description' => 'nullable|string'
        ];
    }
}

Atualizar o UpdateProdutoRequest

Agora, vamos configurar UpdateProductRequest para tratar a validação dos dados ao atualizar um produto existente.

Abra app/Http/Requests/UpdateProdutoRequest.php e aplique as seguintes alterações:

<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class UpdateProdutoRequest extends FormRequest
{
    public function authorize()
    {
        return true; // Permite que todas as requisições sejam autorizadas.
    }

    public function rules()
    {
        return [
            'code' => 'required|string|max:50|unique:produtos,code,'.$this->produto->id,
            'name' => 'required|string|max:250',
            'quantity' => 'required|integer|min:1|max:10000',
            'price' =>  'required|numeric|gt:0',
            'description' => 'nullable|string'
        ];
    }
}

Explicação das Regras de Validação

As regras de validação que definimos incluem:

  • code: é obrigatório, deve ser uma string, não pode ultrapassar os 50 caracteres e dentro da tabela produtos é única.
  • name: é obrigatório, deve ser uma string e não pode ultrapassar os 255 caracteres.
  • description: é opcional (nullable) e deve ser uma string.
  • price: é obrigatório, deve ser um número e maior do que 0.
  • quantity: é obrigatório, deve ser um número inteiro entre 1 e 10000.

Estas regras garantem que quaisquer dados inseridos pelos utilizadores são verificados quanto à sua integridade antes de serem processados pela aplicação.

Resumo

Neste capítulo, aprendemos como utilizar as classes de Request personalizadas StoreProductRequest e UpdateProductRequest para validar dados em Laravel. Esta abordagem não só melhora a integridade dos dados, como também simplifica a manutenção e leitura do código.

<< 9. Atualizar o código no... Índice 11. Ativar Bootstrap 5 >>