laravel 8 auth Route [login] 未定义

Posted

技术标签:

【中文标题】laravel 8 auth Route [login] 未定义【英文标题】:laravel 8 auth Route [login] not defined 【发布时间】:2021-01-11 07:37:05 【问题描述】:

'Route [login] 未定义..' 我是 Laravel 的新手。我想自己做一个登录系统,但我仍然没有解决这个错误。我正在登录,但用户在其他页面上显示为空白,我仍然无法控制它。我想在其他页面上使用用户限制,我该怎么做。

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,
        ],


【问题讨论】:

您实际上是如何在刀片文件中打印路线的。 ? 您没有任何名为“login”的路由,您必须将路由命名为“login” ***.com/questions/29303783/route-login-not-defined,请参考这里 你提到的话题没有多大帮助。我以前检查过。你能在这个问题上给我更清楚的例子吗? 您没有任何名为login 的路由。您必须有一个名为 login 的路由,因为 auth 中间件会将未经身份验证的用户重定向到该路由,除非您想进入该中间件并更改重定向的目的地 【参考方案1】:

您缺少用于显示登录表单的登录路由。尝试命名你的根:

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

或者您可以根据您要查找的内容添加单独的路线。

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

【讨论】:

好的,但是休息 api 上下文呢?例如,使用 nuxt 作为客户端。那么 Laravel 不应该服务于视图。我认为在这种情况下,必须在 RedirectTo 函数中的中间件/Athenticate.php 中进行更改,不?【参考方案2】:

我在学习使用 laravel 护照中间件创建 API 时遇到了这个错误,它默认重定向到 GET 登录路由,所以我不得不像之前在我的 web.php 中所说的那样添加。

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

【讨论】:

以上是关于laravel 8 auth Route [login] 未定义的主要内容,如果未能解决你的问题,请参考以下文章

Laravel - 身份验证,路线未记录

Laravel 身份验证中间件“auth:api”

laravel日常小问题

Laravel 5.1 路线未定义

GET Route Laravel 中的 URL 参数

laravel 8中根路径的问题使用照明