phplaravelauthenticationlaravel-authenticationlaravel-8

laravel 8 auth Route [login] not defined


'Route [login] not defined ..' I'm new to Laravel. I want to make a login system myself, but I still have not solved this error. I am logging in but the user appears blank on the other page, I still cannot control it. I want to use the user restrictions on other pages, how can I do this.

web.php

Route::post('login', [userLogin::class, 'loginPost'])->name('login.post');

Route::get('student/home', [studentHome::class, 'index'] )->name('student.home')->middleware('auth:students');

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

    

userLoginController.php

public function loginPost(Request $request)
{          
 if(auth::guard('students')->attempt(['email'=>$request->student_mail,'password'=>$request->student_password],false))
    {
       //dd(Auth::guard('students')->check());
               
       return redirect()->intended('student.home');
             
     }
     else 
     {
       echo "yannlış";
       
      }
}

auth.php

 'defaults' => [
        'guard' => 'web',
        'passwords' => 'users',
    ],

 'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],
        'students' => [
            'driver' => 'session',
            'provider' => 'students',
        ],

        'api' => [
            'driver' => 'token',
            'provider' => 'users',
            'hash' => false,
        ],
    ],

 'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => App\Models\User::class,
        ],
        'students' => [
            'driver' => 'eloquent',
            'model' => App\Models\students::class,
        ],



Solution

  • You are missing the login route which is used to display the login form. Try naming your route:

    Route::get('/', function () {
        return view('login');
    })->name('login');
    

    Or you can add a separate route depending on what you are looking for.

    Route::get('login', [UserLogin::class, 'showLoginForm'])->name('login');