# Requests e Validação

%[https://www.youtube.com/watch?v=brAIASlkj7w] 

#### Introdução

Ao construir uma aplicação web, é fundamental validar os dados que são submetidos pelos usuários. O Laravel oferece uma maneira fácil e eficaz de lidar com validação de dados através de Requests e de recursos integrados para validação.

[![](https://cdn.hashnode.com/res/hashnode/image/upload/v1768417689084/0d93df31-1868-4e62-b3e8-25df344bb4a8.jpeg align="center")](https://www.udemy.com/course/logica-de-programacao-com-pascalzim/?referralCode=E547897C16AD4FF23AED)

#### Criando Requests

Requests são classes que encapsulam a lógica de validação de dados de entrada. Elas são usadas para validar os dados que são submetidos através de formulários HTTP.

##### Criando um Request

Você pode criar uma nova classe de Request usando o Artisan CLI:

```bash
php artisan make:request StorePostRequest
```

Isso criará um arquivo de Request em `app/Http/Requests`.

##### Definindo Regras de Validação

Dentro da classe de Request, você pode definir as regras de validação no método `rules`:

```php-template
<?php
    public function rules()
    {
        return [
            'title' => 'required|string|max:255',
            'body' => 'required|string',
        ];
    }
```

##### Usando o Request

Para usar o Request em um controlador, basta injetá-lo no método desejado:

```php-template
<?php
    use App\Http\Requests\StorePostRequest;

    public function store(StorePostRequest $request)
    {
        // Se chegar até aqui, os dados são válidos
        // Lógica para salvar o post
    }
```

#### Exibindo Mensagens de Erro

O Laravel fornece recursos para exibir mensagens de erro personalizadas quando a validação falha.

##### Exibindo Erros na View

Você pode exibir mensagens de erro diretamente na view usando a função `@error`:

```php-template
<?php
    <input type="text" name="title" value="{{ old('title') }}">
    @error('title')
        <div class="alert alert-danger">{{ $message }}</div>
    @enderror
```

##### Redirecionando com Mensagens de Erro

Ao redirecionar de volta ao formulário com mensagens de erro, você pode usar o método `withErrors`:

```php-template
<?php
    return redirect('/form')
        ->withErrors($validator)
        ->withInput();
```

#### Validação em Controller

Você também pode validar dados diretamente nos métodos dos controladores, sem a necessidade de criar uma classe de Request separada.

##### Validação no Controller

Você pode validar os dados diretamente no método do controlador usando o facade `Validator`:

```php-template
<?php
  use Illuminate\Support\Facades\Validator;

  public function store(Request $request)
  {
        $validator = Validator::make($request->all(), [
            'title' => 'required|string|max:255',
            'body' => 'required|string',
        ]);
    
        if ($validator->fails()) {
            return redirect('/form')
                ->withErrors($validator)
                ->withInput();
        }
    
        // Lógica para salvar o post
   }
```

[![](https://cdn.hashnode.com/res/hashnode/image/upload/v1768417750677/45b1a5d4-75cd-4b1c-9b4f-555f4d7392a5.jpeg align="center")](https://www.udemy.com/course/logica-de-programacao-com-pascalzim/?referralCode=E547897C16AD4FF23AED)

### Conclusão

Requests e Validação são partes essenciais do processo de desenvolvimento de uma aplicação web segura e funcional. O Laravel oferece uma maneira fácil e eficiente de validar os dados de entrada dos usuários, garantindo que apenas dados válidos sejam aceitos e processados pela aplicação. Ao utilizar Requests e as funcionalidades integradas de validação do Laravel, você pode construir uma aplicação robusta e confiável que oferece uma experiência de usuário consistente e livre de erros. Nos próximos tópicos, continuaremos explorando as poderosas ferramentas e recursos do Laravel para construir aplicações web incríveis.
