HTTP method routing helps your Laravel app know what to do when someone visits a URL or sends data. It tells the app how to handle different actions like showing a page, saving data, updating, or deleting.
HTTP method routing (GET, POST, PUT, DELETE) in Laravel
Route::get('/url', [Controller::class, 'method']); Route::post('/url', [Controller::class, 'method']); Route::put('/url', [Controller::class, 'method']); Route::delete('/url', [Controller::class, 'method']);
Each method matches a specific HTTP request type.
Use controllers to keep your code organized and clean.
Route::get('/users', [UserController::class, 'index']);
Route::post('/users', [UserController::class, 'store']);
Route::put('/users/{id}', [UserController::class, 'update']);
Route::delete('/users/{id}', [UserController::class, 'destroy']);
This example shows how to set up routes for all four HTTP methods in Laravel. The UserController handles showing users, adding a new user, updating a user, and deleting a user. Each method returns a JSON response.
<?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\UserController; Route::get('/users', [UserController::class, 'index']); Route::post('/users', [UserController::class, 'store']); Route::put('/users/{id}', [UserController::class, 'update']); Route::delete('/users/{id}', [UserController::class, 'destroy']); // UserController.php namespace App\Http\Controllers; use Illuminate\Http\Request; class UserController extends Controller { private static $users = [ 1 => ['name' => 'Alice'], 2 => ['name' => 'Bob'], ]; public function index() { return response()->json(self::$users); } public function store(Request $request) { $newId = count(self::$users) + 1; self::$users[$newId] = ['name' => $request->input('name')]; return response()->json(['message' => 'User added', 'user' => self::$users[$newId]], 201); } public function update(Request $request, $id) { if (!isset(self::$users[$id])) { return response()->json(['message' => 'User not found'], 404); } self::$users[$id]['name'] = $request->input('name'); return response()->json(['message' => 'User updated', 'user' => self::$users[$id]]); } public function destroy($id) { if (!isset(self::$users[$id])) { return response()->json(['message' => 'User not found'], 404); } unset(self::$users[$id]); return response()->json(['message' => 'User deleted']); } }
Laravel routes are defined in the routes/web.php or routes/api.php files.
Use Route::resource() for quick RESTful routing if you want all methods automatically.
Remember to test your routes with tools like Postman or your browser.
HTTP method routing tells Laravel how to respond to different types of requests.
GET is for reading data, POST for creating, PUT for updating, and DELETE for removing.
Use controllers to keep your routing logic clean and organized.