Usage of Request Class in Laravel

Usage of Request Class in Laravel

Usage of Request Class in Laravel

In Laravel, the Request class is used to handle HTTP requests. It allows you to access input data, validate requests, retrieve query parameters, handle file uploads, and more.

1. Accessing Request Data

You can access request data inside your controller method by injecting the Illuminate\Http\Request class.

Example: Access Request Data

use Illuminate\Http\Request; class UserController extends Controller { public function store(Request $request) { $name = $request->input('name'); // Get input field 'name' $email = $request->email; // Shortcut to get email return "Name: $name, Email: $email"; } }

You can also retrieve all request data:

$allData = $request->all();

2. Retrieving Query Parameters

When handling GET requests, you can access query parameters like this:

public function index(Request $request) { $search = $request->query('search'); // /users?search=John return "Search for: $search"; }

Or retrieve all query parameters:

$allQueries = $request->query();

3. Checking if a Request Has Data

if ($request->has('name')) { // The request contains the 'name' field } if ($request->filled('email')) { // The request has 'email' and it is not empty }

4. Validating Requests

Laravel provides a built-in validation system for request data.

Basic Validation

public function store(Request $request) { $validated = $request->validate([ 'name' => 'required|string|max:255', 'email' => 'required|email|unique:users', 'password' => 'required|min:8' ]); return "Validation passed!"; }

Custom Error Messages

$validated = $request->validate([ 'name' => 'required|string|max:255', ], [ 'name.required' => 'The name field is required.', ]);

5. Using Form Request Class (Recommended for Clean Code)

For better code organization, you can use Form Request Classes.

Step 1: Create a Form Request

php artisan make:request StoreUserRequest

Step 2: Define Validation Rules

📂 app/Http/Requests/StoreUserRequest.php

namespace App\Http\Requests; use Illuminate\Foundation\Http\FormRequest; class StoreUserRequest extends FormRequest { public function rules(): array { return [ 'name' => 'required|string|max:255', 'email' => 'required|email|unique:users', 'password' => 'required|min:8', ]; } }

Step 3: Use it in Controller

use App\Http\Requests\StoreUserRequest; public function store(StoreUserRequest $request) { return "Validated data: " . json_encode($request->validated()); }

6. Handling File Uploads

If your request contains file uploads, you can handle them using the file() method.

public function upload(Request $request) { $request->validate([ 'avatar' => 'required|image|mimes:jpeg,png,jpg,gif|max:2048', ]); $fileName = time() . '.' . $request->avatar->extension(); $request->avatar->move(public_path('uploads'), $fileName); return "File uploaded successfully!"; }

7. Checking Request Type

if ($request->isMethod('post')) { // Handle POST request } if ($request->ajax()) { // Handle AJAX request } if ($request->is('admin/*')) { // Match URL pattern like /admin/dashboard }

Conclusion

  • ✅ Use $request->input('field') to retrieve input data.
  • ✅ Use $request->query('param') for URL query parameters.
  • ✅ Validate data using $request->validate([]) or Form Request Classes.
  • ✅ Handle file uploads with $request->file('file').
  • ✅ Check request types like AJAX or POST with $request->isMethod().

Would you like a practical example for a specific use case? 

Souy Soeng

Souy Soeng

Our website teaches and reads PHP, Framework Laravel, and how to download Admin template sample source code free. Thank you for being so supportive!

Github

Post a Comment

CAN FEEDBACK
close