Illuminate\Http\Request es una clase para manejar de forma orientada a objetos las solicitudes HTTP que recibe la aplicación.
Da acceso a todo lo que contiene la solicitud: datos de formulario, query string, archivos, cabeceras, etc.
Si el método también recibe parámetros de ruta, colócalos después de Request.
use App\Http\Controllers\UserController;Route::put('/user/{id}', [UserController::class, 'update']);
public function update(Request $request, string $id): RedirectResponse{ // Con $request accedes a los datos de la solicitud y con $id al parámetro de ruta return redirect('/users');}
query obtiene el valor solo de la query string (lo que va después de ?).
$name = $request->query('name');$name = $request->query('name', 'Helen');// Toda la query string como array$query = $request->query();
input mira tanto el cuerpo de la solicitud como la query string, mientras que query mira solo la query string.
Usa query si necesitas distinguir entre los datos POST del formulario y los parámetros de la URL.
Además de input, hay métodos específicos para obtener valores con un tipo concreto.
// Como string (instancia de Stringable)$name = $request->string('name')->trim();// Como entero$perPage = $request->integer('per_page');// Como booleano ("1", "true", "on", "yes" → true)$archived = $request->boolean('archived');// Como array$versions = $request->array('versions');// Fecha como instancia de Carbon$birthday = $request->date('birthday');
// Devuelve la ruta (por ejemplo "foo/bar")$uri = $request->path();// Comprueba si coincide con un patrón (admite comodín *)if ($request->is('admin/*')) { // ...}// Comprueba si coincide con una ruta con nombreif ($request->routeIs('admin.*')) { // ...}
Con store guardas el archivo en el almacenamiento.
El nombre se genera automáticamente.
// Guarda en el directorio "images" del disco por defecto$path = $request->photo->store('images');// Guarda en S3$path = $request->photo->store('images', 's3');