skip to Main Content

when ever i want to logout, it always show “Use of undefined constant login – assumed ‘login’” error. what did i do wrong?

web.php

route::get('/logout','AuthController@logout')->name('logout');

route::get('/','PagesController@home')->name('home');

AuthController.php

public function getLogin(){
        return view('login');
    }

    public function postLogin(Request $request){
       if(!Auth::attempt(['email' => $request->email, 'password' => $request->password])){
        return redirect()->back();
       }
        return redirect()->route('home');
    }

public function logout(){
        Auth::logout();
        return redirect()->route(login);
    }

PagesController.php

public function home()
    {
        return view('index') ;
    }

main.blade.php

<a href="{{route('logout')}}">logout</a>

3

Answers


  1. Put login in qoutation:

    public function logout(){
            Auth::logout();
            return redirect()->route('login');
        }
    
    Login or Signup to reply.
  2. As per your code you need to use quote for it on the below line while using login, so if you do not provide quote it is assuming as constant.
    And also there should be a route for it in your route file with the name login as per your question that route also do not exists yet

    public function logout(){
            Auth::logout();
            return redirect()->route('login');
        }
    
    Login or Signup to reply.
  3. public function logout(){
            Auth::logout();
            return redirect()->route(login);
        }
    

    change To :

    public function logout(){
            Auth::logout();
            return redirect()->route('login');
        }
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search