Kritim Yantra
Apr 02, 2025
HTTP requests are the backbone of web applications. They allow users to interact with your app by sending data (like form submissions) and receiving responses. In Laravel, handling HTTP requests is simple and powerful.
In this guide, we’ll cover:
✅ Accessing Request Data
✅ Working with Input Values
✅ Handling File Uploads
✅ Managing Sessions & Cookies
✅ Trusting Proxies & Hosts
Let’s dive in! 🚀
Laravel provides an easy way to access HTTP request data using the Illuminate\Http\Request
class.
Inject the Request
object into your controller method:
use Illuminate\Http\Request;
public function store(Request $request) {
$name = $request->input('name'); // Get 'name' from request
return "Hello, $name!";
}
request()
HelperYou can also use the global helper:
$name = request('name'); // Shortcut for $request->input('name')
Laravel allows dynamic property access:
$email = $request->email; // Same as $request->input('email')
You can fetch user-submitted data in multiple ways.
$allInputs = $request->all(); // Returns all input data as an array
$username = $request->input('username'); // Get 'username'
$username = $request->username; // Alternative
$age = $request->input('age', 25); // Defaults to 25 if 'age' is missing
if ($request->has('email')) {
// Email field exists in the request
}
if ($request->filled('name')) {
// 'name' is present and not empty
}
Handling file uploads in Laravel is straightforward.
$file = $request->file('photo'); // Get the uploaded file
if ($request->hasFile('photo')) {
// File was uploaded successfully
}
$path = $request->file('photo')->store('images'); // Store in 'storage/app/images'
$path = $request->photo->storeAs('images', 'profile.jpg'); // Custom filename
Sessions help store user data across requests.
session(['user_id' => 1]); // Store a value
$userId = session('user_id'); // Retrieve it
Flash data is useful for success/error messages.
// Store flash data (available only in the next request)
session()->flash('message', 'Login successful!');
// Retrieve it (e.g., in Blade)
@if (session('message'))
<div class="alert">{{ session('message') }}</div>
@endif
Cookies store small data on the client side.
$value = $request->cookie('name'); // Get cookie 'name'
return response('Hello')->cookie('user', 'John', 60); // 60 minutes
If your app runs behind a load balancer (like AWS or Nginx), you need to configure trusted proxies.
// In bootstrap/app.php
$middleware->trustProxies(at: '*');
$middleware->trustHosts(at: ['laravel.test']);
Let’s build a simple profile update form.
// routes/web.php
Route::put('/profile', [ProfileController::class, 'update']);
// ProfileController.php
public function update(Request $request) {
$request->validate([
'name' => 'required',
'avatar' => 'image|max:2048',
]);
$user = auth()->user();
$user->name = $request->name;
if ($request->hasFile('avatar')) {
$path = $request->file('avatar')->store('avatars');
$user->avatar = $path;
}
$user->save();
return back()->with('success', 'Profile updated!');
}
<form action="/profile" method="POST" enctype="multipart/form-data">
@csrf
@method('PUT')
<input type="text" name="name" value="{{ old('name', auth()->user()->name) }}">
<input type="file" name="avatar">
<button type="submit">Update</button>
</form>
@if (session('success'))
<div class="alert">{{ session('success') }}</div>
@endif
Laravel makes HTTP request handling effortless with:
✔ Simple data retrieval ($request->input()
, $request->file()
)
✔ Session & cookie management (session()
, cookie()
)
✔ File uploads (store()
, storeAs()
)
✔ Security (Trusted proxies, validation)
Now you’re ready to build powerful web apps with Laravel! 🎉
Happy coding! 😊🚀
No comments yet. Be the first to comment!
Please log in to post a comment:
Continue with Google