Home
Button Mobile Webdesign em Foco
Newsletter Webdesign em Foco
Support Webdesign em Foco
Contribuition Webdesign em Foco
Doe para a Webdesign em Foco
Suporte da Webdesign em Foco
Fechar

Curso de Laravel para Noobs - #31 Custom Request

19/02/2024

Neste tutorial aprenderemos a criar as chamadas Custom Request ou Requisições Personalizadas com mensagens de erro próprias e validações específicas.

Fazendo Requisições Personalizadas - Laravel

resource/views/carros.blade.php

Vamos começar criando o formulário que irá enviar os dados para serem trabalhados no backend:

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        .alert-danger {
            color: #721c24;
            background-color: #f8d7da;
            border-color: #f5c6cb;
        }
        .alert {
            position: relative;
            padding: 0.75rem 1.25rem;
            margin-bottom: 1rem;
            border: 1px solid transparent;
            border-radius: 0.25rem;
        }
    </style>
</head>
<body>
    @if ($errors->any())
        <div class="alert alert-danger">
            <ul>
                @foreach ($errors->all() as $error)
                    <li>{{ $error }}</li>
                @endforeach
            </ul>
        </div>
    @endif
    
    <form name="form" id="form" method="post" action="/processa">
        @csrf
        <input type="text" name="numero" id="numero">
        <input type="submit" value="Enviar">
    </form>

</body>
</html>

routes/web.php

Vamos criar a rota da view acima e também do arquivo que vai processar os dados do formulário:

Route::get('/',[TodoController::class,'index'])->name('todo.index');
Route::post('/processa',[TodoController::class,'processa'])->name('todo.processo');

app/Http/Controllers/TodoController.php

Vamos criar agora os métodos no controller que vai receber a requisição:

public function index():View
{
    $data = Todo::orderBy('nome')->get();
    return view('carros',compact('data'));
}

public function processa(ThiagoRequest $request)
{
    echo 'oi';
}

app/Http/Request/ThiagoRequest.php

Repare que no código acima fazemos uma referencia a ThiagoRequest. Portanto precisamos criar essa request através do comando:

php artisan make:request ThiagoRequest

E vamos inserir as regras nesta nova request:

<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class ThiagoRequest extends FormRequest
{
    public function authorize()
    {
        return true;
    }

    public function rules()
    {
        return [
            'numero' => 'required|numeric|max:255'
        ];
    }

    public function messages(): array
    {
        return [
            'numero.required' => 'O número é obrigatório.',
            'numero.numeric' => 'Este campo deve ser preenchido com um número',
        ];
    }
}

Por hoje é só! Fiquem todos com Deus! Sucesso nos códigos e na vida!

Precisa de ajuda? webdesignemfoco@gmail.com

Porque a um pelo Espírito é dada a palavra da sabedoria; e a outro, pelo mesmo Espírito, a palavra da ciência; E a outro, pelo mesmo Espírito, a fé; e a outro, pelo mesmo Espírito, os dons de curar; E a outro a operação de maravilhas; e a outro a profecia; e a outro o dom de discernir os espíritos; e a outro a variedade de línguas; e a outro a interpretação das línguas. Coríntios 12:8-10

Receba as aulas da Webdesign em Foco em Seu Email
Suporte Webdesign em Foco

Posts Relacionados

Curso de Laravel para Noobs - #30 Exercício de Classe Request
Neste tutorial realizaremos um exercício de Laravel sobre a classe Request.
Saiba mais!
Curso de Laravel para Noobs - #32 Upload File
Neste tutorial aprenderemos como realizar uploads de arquivos usando o framework Laravel e a classe request.
Saiba mais!
Framework
Nessa playlist aprenderemos um pouco mais sobre os diferentes frameworks existentes, apontando os defeitos e qualidades de cada um.
Saiba mais!