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.