Session Tutorial in Laravel 11

 <?php


namespace App\Http\Controllers;

use Illuminate\Http\Request;

class TestController extends Controller
{
    public function index()
    {
        $valueNine = session("name");
        return view("welcomeTwo",compact("valueNine"));

        // session() is a Global Helper Function
        // "Request" Class is used to access Form Data
        $value = session()->all();
        echo "<pre>";
        print_r($value);
        echo "</pre>";

        $valueTwo = session()->get("name");  //Get(Read) Session Value
        // we can use default value(Here, "HELLO" is default value of name "name") of given session in case of not present given session as shown below :
        $valueTwo = session("name", "HELLO");    //Get(Read) Session Value
        echo $valueTwo . "<br><br>";

        // except() method returns Array
        // $valueThree = session()->except(["class"]);
        // echo "<pre>";
        // print_r($valueThree);
        // echo "</pre>";

        // $valueFour = session()->only(["name","_previous"]);
        // echo "<pre>";
        // print_r($valueFour);
        // echo "</pre>";

        // To Check whether any particular session exists OR Not, we can use has() method of session
        if (session()->has("name")) {
            $valueFive = session()->get("name");
            echo $valueFive . "<br><br>";
        } else {
            echo "has() : Name Key does not exist<br><br>";
        }

        // We can also use exists() method to check whether any particular session exists OR Not
        if(session()->exists("name")) {
            $valueSix = session()->get("name");
            echo $valueSix . "<br><br>";
        } else {
            echo "exists() : Name key does not exist<br><br>";
        }

        if(session()->exists("fruit")) {
            $valueSeven = session()->get("fruit");
            echo $valueSeven . "<br><br>";
        } else {
            echo "exists() : Fruit key does not exist<br><br>";
        }

        // exists() method returns true if session key exists OR session has NULL value and returns false(OR will go in else part) only if session key doesn't exists
        // exists() will check only whether session key is present OR Not, Not value
        // If any session key has NULL value then exists() method will print it.
        // has() method returns true only if session key exists and returns false(OR will go in else part) if session key doesn't exists OR session key has NULL value

        if(session()->has("fruit")) {
            $valueEight = session()->get("fruit");
            echo $valueEight . "<br><br>";
        } else {
            echo "has() : Fruit key does not exist<br><br>";
        }
    }
    public function storeSession(Request $request)
    {
        // When we use "Request Class" with session at that time, we must use "put()" method
        session(["name" => "HelloWorld", "class" => "BTech", "fruit" => NULL]);
        // $request->session()->put("class","BTech");

        session()->increment("count", $incrementBy = 2);
        session()->decrement("countTwo", $decrementBy = 2);
        // regenerate() method will generate different different Tokens every time
        // regenerate() method is used for security purpose because every time different Tokens are generated so hackers will confuse and it will trouble for hackers
        session()->regenerate();

        // session()->flash("status","Session Saved Successfully.");
        // return redirect("/welcomeTwoPage");

        return redirect("/index");
       
    }
    public function deleteSession()
    {
        // session()->forget(["name", "class"]);
        // We can use flush() method to remove All Sessions simultaneously
        session()->flush();

        // invalidate() method is used for security purpose because every time different Tokens are generated so hackers will confuse and it will trouble for hackers
        // and invalidate() method removes all sessions. invalidate() method works same as regenerate() method.
        session()->invalidate();
        return redirect("/index");
    }
}
Above File is app\Http\Controllers\TestController.php File





Below File is routes\web.php File
<?php

use App\Http\Controllers\TaskController;
use App\Http\Controllers\TestController;
use App\Http\Controllers\UserController;
use Illuminate\Support\Facades\Route;

Route::get('/', function () {
    return view('welcome');
});

Route::controller(TestController::class)->group(function () {
    Route::get("/index", "index");
    Route::get("/store-session", "storeSession");
    Route::get("/delete-session", "deleteSession");
});
Route::get("/welcomeTwoPage", function () {
    return view("welcomeTwo");
});

Route::get("/form", function () {
    return view("adduser");
})->name("adduser");
Route::post("/add", [UserController::class, "addUser"])->name("addUser");

Route::get("/showAllTasks", [TaskController::class, "showTask"])->name("home.task");
Route::post("/checkValidate", [TaskController::class, "validateUser"])->name("validate.user");

Route::get("/singleTask/{id}", [TaskController::class, "singleTask"])->name("single.task");

Route::get("/updatePage/{id}", [TaskController::class, "updatePage"])->name("update.page");
Route::put("/updateTask/{id}", [TaskController::class, "updateTask"])->name("update.task");

Route::get("/delete/{id}", [TaskController::class, "deleteTask"])->name("delete.task");

Route::get("/addNew", function () {
    return view("adduser");
})->name("addNew");


// Route::get("/home", function() {
//     return view("home");
// })->name("home.task");




Comments

Popular posts from this blog

Eloquent Many to Many Relationship Tutorial in Laravel 11

Blade Template Tutorial Three Template Inheritance in Laravel 11