0
0
Laravelframework~5 mins

HTTP method routing (GET, POST, PUT, DELETE) in Laravel

Choose your learning style9 modes available
Introduction

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.

When you want to show a page or data to users (GET).
When users submit a form to add new information (POST).
When you need to update existing information (PUT).
When you want to remove data from your app (DELETE).
Syntax
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.

Examples
This route shows a list of users when someone visits '/users'.
Laravel
Route::get('/users', [UserController::class, 'index']);
This route saves new user data sent from a form.
Laravel
Route::post('/users', [UserController::class, 'store']);
This route updates user information for the user with the given ID.
Laravel
Route::put('/users/{id}', [UserController::class, 'update']);
This route deletes the user with the given ID.
Laravel
Route::delete('/users/{id}', [UserController::class, 'destroy']);
Sample Program

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.

Laravel
<?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']);
    }
}
OutputSuccess
Important Notes

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.

Summary

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.