Helpers y métodos para obtener datos de la Request en Laravel
En Laravel podemos acceder a los datos de la petición HTTP usando:
- El helper global
request() - La fachada
Request(Illuminate\Support\Facades\Request) - Inyección de la clase
Illuminate\Http\Request
A continuación, los métodos más usados:
request('clave')
- Obtiene el valor de la clave indicada, buscando en GET, POST, JSON, etc.
- Ejemplo:
request('family_id');
request()->input('clave')
- Equivalente a
request('clave'). - Ejemplo:
request()->input('family_id');
request()->query('clave')
- Obtiene el valor solo de la query string (
?param=valor). - Ejemplo:
request()->query('family_id');
request()->post('clave')
- Obtiene el valor solo del cuerpo POST.
- Ejemplo:
request()->post('family_id');
request()->all()
- Obtiene todos los datos de la petición (GET, POST, JSON, etc.)
- Ejemplo:
request()->all();
request()->only([...])
- Obtiene solo las claves especificadas.
- Ejemplo:
request()->only(['name', 'email']);
request()->except([...])
- Obtiene todos los datos excepto las claves indicadas.
- Ejemplo:
request()->except(['password']);
request()->has('clave')
- Devuelve
truesi la clave existe (aunque esté vacía). - Ejemplo:
request()->has('family_id');
request()->filled('clave')
- Devuelve
truesi la clave existe y no está vacía. - Ejemplo:
request()->filled('family_id');
request()->missing('clave')
- Devuelve
truesi la clave no existe o es null. - Ejemplo:
request()->missing('family_id');
request()->ajax()
- Devuelve
truesi la petición es AJAX. - Ejemplo:
request()->ajax();
request()->isJson()
- Devuelve
truesi la petición es de tipo JSON. - Ejemplo:
request()->isJson();
request()->method()
- Devuelve el método HTTP (
GET,POST,PUT…). - Ejemplo:
request()->method();
request()->isMethod('metodo')
- Comprueba si el método HTTP es el indicado.
- Ejemplo:
request()->isMethod('post');
request()->fullUrl()
- Devuelve la URL completa con query string.
- Ejemplo:
request()->fullUrl();
request()->url()
- Devuelve la URL sin query string.
- Ejemplo:
request()->url();
request()->path()
- Devuelve solo el path de la URL.
- Ejemplo:
request()->path();
Uso con la fachada Request
Podemos hacer lo mismo usando la fachada:
use Illuminate\Support\Facades\Request;
Request::input('family_id');
Request::query('family_id');
Request::post('family_id');
Request::all();
Request::only(['name', 'email']);
Request::fullUrl();📌 Nota: Tanto request() como Request usan internamente el mismo objeto Illuminate\Http\Request.
Tabla resumen de métodos principales
| Método | Origen de datos | Descripción | Ejemplo |
|---|---|---|---|
request('clave') |
GET, POST, JSON | Busca la clave en todos los datos de la petición | request('id') |
input('clave') |
GET, POST, JSON | Igual que request('clave') |
request()->input('id') |
query('clave') |
Query string (?param=) |
Solo busca en los parámetros de la URL | request()->query('page') |
post('clave') |
Cuerpo POST | Solo busca en el contenido del formulario o cuerpo POST | request()->post('email') |
all() |
GET, POST, JSON | Devuelve todos los datos | request()->all() |
only([...]) |
GET, POST, JSON | Devuelve solo las claves indicadas | request()->only(['name']) |
except([...]) |
GET, POST, JSON | Devuelve todos excepto las claves indicadas | request()->except(['password']) |
has('clave') |
GET, POST, JSON | Existe la clave (aunque esté vacía) | request()->has('name') |
filled('clave') |
GET, POST, JSON | Existe y tiene valor no vacío | request()->filled('name') |
missing('clave') |
GET, POST, JSON | No existe o está vacía | request()->missing('token') |
ajax() |
Encabezado X-Requested-With |
Comprueba si la petición es AJAX | request()->ajax() |
isJson() |
Cabecera Content-Type |
Comprueba si es JSON | request()->isJson() |
method() |
Método HTTP | Devuelve el método usado (GET, POST, etc.) |
request()->method() |
isMethod('metodo') |
Método HTTP | Comprueba si el método es el indicado | request()->isMethod('post') |
fullUrl() |
URL completa | Devuelve la URL con query string | request()->fullUrl() |
url() |
URL base | Devuelve la URL sin query string | request()->url() |
path() |
URL base | Devuelve solo el path | request()->path() |