En el desarrollo moderno con Laravel, el objeto
Request es una de las herramientas más poderosas y subestimadas. Aunque muchos desarrolladores solo utilizan funciones básicas como input() o all(), Laravel proporciona una colección robusta de métodos que permiten manipular, filtrar, validar y extraer datos de una petición HTTP de forma simple, limpia y expresiva.En esta guía aprenderás todos los métodos avanzados del Request, cómo usarlos correctamente y ejemplos realistas aplicados a un proyecto profesional con Laravel 12.
¿Qué es el objeto Request en Laravel?
Laravel envuelve cada petición HTTP dentro de una instancia de:
Illuminate\Http\Request
Este objeto contiene:
Datos enviados por GET y POST
Headers
Archivos subidos
Cookies
Metadata del request (IP, método HTTP, URL, agente de usuario, etc.)
Y Laravel incluye docenas de métodos para obtener y manipular esta información de forma elegante.
1. Métodos básicos del Request
all()
all()Obtiene todos los datos enviados en la petición.
$data = $request->all();
Ideal para debugging, NO recomendado para asignación masiva sin validación.
input()
input()Obtiene valores individuales:
$name = $request->input('name');
Con valor por defecto:
$name = $request->input('name', 'Invitado');
only()
only()Obtiene un subconjunto de datos.
$data = $request->only(['name', 'email']);
except()
except()Excluye claves específicas:
$data = $request->except('password');
2. Métodos avanzados para manejo de datos
has()
has()Verifica si el input fue enviado:
if ($request->has('email')) { // ... }
filled()
filled()Verifica si una entrada existe y no está vacía:
if ($request->filled('telefono')) { // ... }
missing()
missing()Lo contrario de
has():if ($request->missing('token')) { // ... }
boolean()
boolean()Convierte valores tipo "true", "false", "1", "0" a booleanos reales:
$isActive = $request->boolean('activo');
date()
date()Obtiene un valor como instancia de Carbon:
$fecha = $request->date('fecha_inicio');
integer()
, float()
, string()
integer()float()string()Normalización segura:
$age = $request->integer('age'); $price = $request->float('price'); $name = $request->string('name');
collect()
collect()Convierte un input a Collection:
$items = $request->collect('items');
Muy útil para manejar arrays complejos como campos repetibles o JSON.
3. Métodos avanzados sobre la petición HTTP
method()
y isMethod()
method()isMethod()$method = $request->method(); if ($request->isMethod('post')) { // Acción para POST }
path()
y is()
path()is()if ($request->is('admin/*')) { // ruta tipo admin/usuarios }
fullUrl()
y url()
fullUrl()url()$url = $request->fullUrl(); // con query string $clean = $request->url(); // sin query
ip()
— obtén la IP del cliente
ip()$ip = $request->ip();
header()
header()Para obtener headers específicos:
$agent = $request->header('User-Agent');
4. Métodos para manejo de archivos
Laravel hace esto RIDÍCULAMENTE fácil.
file()
file()$file = $request->file('avatar');
hasFile()
hasFile()if ($request->hasFile('documento')) { // ... }
file()->store()
file()->store()$path = $request->file('foto')->store('fotos', 's3');
5. Métodos de seguridad y sanitización
validate()
validate()Validación directa desde el Request:
$data = $request->validate([ 'email' => 'required|email', 'password' => 'required' ]);
safe()
safe()Obtiene solo lo validado:
$data = $request->safe()->only(['name', 'email']);
merge()
y replace()
merge()replace()Modificar inputs del request:
$request->merge(['role' => 'admin']);
6. Métodos especiales
cookie()
cookie()$token = $request->cookie('XSRF-TOKEN');
bearerToken()
bearerToken()Perfecto para APIs:
$token = $request->bearerToken();
hasAny()
hasAny()$request->hasAny(['email', 'telefono'])
query()
query()Solo parámetros GET:
$search = $request->query('q');
Ejemplo completo (Laravel 12 — Controlador real)
public function store(Request $request) { $data = $request->validate([ 'name' => 'required|string|max:255', 'price' => 'required|numeric', 'active' => 'boolean', 'tags' => 'array', 'image' => 'nullable|file|image|max:2048' ]); $data['active'] = $request->boolean('active'); $data['tags'] = $request->collect('tags')->filter()->values(); if ($request->hasFile('image')) { $data['image_path'] = $request->file('image')->store('productos', 's3'); } return Producto::create($data); }
Conclusión
El objeto Request es un pilar fundamental en Laravel, y dominarlo te permite escribir controladores más limpios, seguros, eficientes y expresivos.
Con estos métodos avanzados, tu código se vuelve:
✔️ Más readable
✔️ Más seguro
✔️ Más mantenible
✔️ Más profesional
Tal como requiere un proyecto grande con Laravel 12.
Hi there,
We run a Youtube growth service, where we can increase your subscriber count safely and practically.
- Guaranteed: We guarantee to gain you 400+ new subscribers each month.
- Real, human subscribers who subscribe because they are interested in your channel/videos.
- Safe: All actions are done, without using any automated tasks / bots.
If you are interested then we can discuss further.
Kind Regards,
Kate