Un ejemplo práctico de la función match para redireccionar rutas en Laravel

Bien pasemos a un ejemplo práctico de como es el comportamiento de la función Route::match. Primero pasemos a crear un nuevo controlador en algún proyecto que tengamos ya creado, con la nomenclatura siguiente:

php artisan make:controller ContactController

Bien, ya teniendo nuestro controlador, procedemos escribir la siguiente función:

public function index(Request $r)
    {
        $bienvenida = 'Un mensaje de Bienvenida';
        if(!empty($r->all())){
            $a = Contact::create([
                'name' => $r->name,
                'email' => $r->email,
                'message' => $r->message,
            ]);
        }
	return view('contacts.index')->with('name',$bienvenida);
    }

Ahora claro, habrá que crear un modelo y una migración, para eso simplemente desde alguna consola ejecutamos lo siguiente:

php artisan make:model Contact -m

Ahora rellenamos nuestra migración con algunos cuantos datos en database/migrations dentro de la función up:

$table->increments('id');
 $table->string('name')->unique();
 $table->string('email')->unique();
 $table->text('message');
 $table->timestamps();

Ya teniendo todo lo anterior, procedemos a crear nuestra vista, para eso reusemos un poco de código provisto por el framework:

@extends('layouts.app')

@section('content')
<div class="container">
    <div class="row justify-content-center">
        <div class="col-md-10">
            <div class="card">
                <div class="card-header">{{ __('Dashboard') }}</div>

                <div class="card-body">
                    @if (session('status'))
                        <div class="alert alert-success" role="alert">
                            {{ session('status') }}
                        </div>
                    @endif
                    <h1> Eta es la página de asignaciones {{ $name }}</h1>
                    <form action="/assignments" method="post">
                       @csrf
                        <div class="form-group row">
                            <input class="form-control" type="text" name="name"/>
                            </div>
                        </div>
                        <div class="form-group row">
                            <input class="form-control" type="text" name="email"/>
                        </div>
                        <div class="form-group row">
                            <input class="form-control" type="text" name="message"/>
                        </div>
                         <div class="form-group row">
                           <input class="btn btn-success" type="submit" name="envio" value="enviar"/>
                        </div>
                    </form>
                </div>
                
            </div>
        </div>
    </div>
</div>
@endsection

Por último vamos al routes/web.php y procedemos a poner lo siguiente:

Route::match(['get','post'],'/contact','ContactController@index')->name('contacts.index');

Como ven es un sencillo ejemplo, pero como ahora pueden experimentar, es posible dirigirnos a esta página y realizar una petición post para realizar un nuevo registro en la base de datos simplemente referenciando a una sola ruta. Espero que esto contribuya un poco a su conocimiento del framework.