Haren Sarma
Haren Sarma

Reputation: 2553

Middleware class not exist laravel

I am just learning laravel and I am facing one issue. I am trying to work with session but it is not working.

Middleware

    <?php

namespace App\Http\Middleware;

use Illuminate\Http\Request;

class Adminlogin {

    public function handle() {
        if (!$request->session()->has('userid')) {
            return view('admin.auth.login');
        }
//        return $next($request);
    }

}

Error

ErrorException in Adminlogin.php line 10: Undefined variable: request

Upvotes: 1

Views: 436

Answers (2)

Saumya Rastogi
Saumya Rastogi

Reputation: 13703

You should pass $request & $next in arguments like this:

<?php

namespace App\Http\Middleware;

use Illuminate\Http\Request;

class Adminlogin {

    public function handle($request, Closure $next) {
        if (!$request->session()->has('userid')) {
            return view('admin.auth.login');
        }
            return $next($request);
    }

}

See more about - Defining Middlewares in Laravel

Hope this helps!

Upvotes: 2

Alexey Mezenin
Alexey Mezenin

Reputation: 163768

Change it to:

 public function handle($request, Closure $next) {

Also, you can simply use session() helper in your case:

public function handle($request, Closure $next) {
    return session()->has('userid') ? $next($request) : view('admin.auth.login');
}

Upvotes: 0

Related Questions