GlosarioRouting

¿Qué es Request?

El objeto Request en Laravel encapsula toda la informacion de una peticion HTTP entrante, incluyendo datos de formularios, archivos, cabeceras, cookies y parametros de la URL.

Request

La clase Illuminate\Http\Request proporciona acceso a toda la informacion de la peticion HTTP actual de forma orientada a objetos.

Acceder a datos de la peticion

public function store(Request $request)
{
    // Obtener datos de entrada
    $name = $request->input('name');
    $email = $request->input('email', 'default@email.com');
    $all = $request->all();
    $only = $request->only(['name', 'email']);

    // Archivos
    $avatar = $request->file('avatar');
    if ($request->hasFile('avatar') && $avatar->isValid()) {
        $path = $avatar->store('avatars', 'public');
    }

    // Informacion de la peticion
    $method = $request->method();
    $url = $request->url();
    $ip = $request->ip();
    $isAjax = $request->ajax();
}

Form Requests (validacion)

php artisan make:request StorePostRequest
class StorePostRequest extends FormRequest
{
    public function authorize(): bool
    {
        return true;
    }

    public function rules(): array
    {
        return [
            'title' => ['required', 'string', 'max:255'],
            'body' => ['required', 'string', 'min:10'],
            'tags' => ['array', 'max:5'],
            'tags.*' => ['exists:tags,id'],
        ];
    }
}

Los Form Requests permiten extraer la logica de validacion y autorizacion fuera del controlador, manteniendo el codigo limpio y reutilizable.