首页 > 解决方案 > Laravel 5.8:此路由不支持 POST 方法。支持的方法:GET、HEAD。尝试登录时

问题描述

我的项目直到昨天都运行良好,然后当我尝试登录时,我得到了。

此路由不支持 POST 方法。支持的方法:GET、HEAD。

这是我的登录控制器

 use AuthenticatesUsers;

    /**
     * Where to redirect users after login.
     *
     * @var string
     */
    protected function redirectTo()
            {
                if(Auth::user()->admin==0)
                {
                    return '/User_Dashboard';
                }
        
                if(Auth::user()->admin==1 )
                {
                    return '/Admin_Dashboard';
                }
        
                if(Auth::user()->admin==2)
                {
                    return '/Super_Dashboard';
                }
                
            }

    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('guest')->except('logout');
    }

    public function logout(Request $request){
        $this->guard()->logout();
        Auth::logout();
        Session::flush();
  
        return redirect('/login');
    }
}
    }

这是我的验证控制器。我认为这里没有问题。

  use VerifiesEmails;

    /**
     * Where to redirect users after verification.
     *
     * @var string
     */
    protected function redirectTo()
    {
        if(Auth::user()->admin==0)
        {
            return '/User_Dashboard';
        }

        if(Auth::user()->admin==1 )
        {
            return '/Admin_Dashboard';
        }

        if(Auth::user()->admin==2)
        {
            return '/Super_Dashboard';
        }
        
    }

最后但同样重要的是,我的 web.php

    Route::get('/', '\App\Http\Controllers\Auth\LoginController@login')->name('login');

    Route::get('logout', '\App\Http\Controllers\Auth\LoginController@logout');

    Route::get('bar-chart', 'ChartsController@index');
 Route::group(['middleware' =>['admin']], function(){

                // Admin Dashboard
        Route::post('/Admin_Dashboard',['uses' =>'DashboardController@adminDashboard', 'as' => 'dashboard']); 
}


 Route::group(['middleware' =>['superAdmin']], function(){

            Route::get('/Super_Dashboard', ['uses'=>'DashboardController@superDashboard', 'as' => 'superUserDashboard']);
}


    Route::get('/User_Dashboard', 'DashboardController@mydashboard')->name('userDashboard'); 

你看到什么问题了吗?我不记得我最后做了什么改变,现在发生了,对 laravel 来说有点新。

标签: laravelroutescontroller

解决方案


是因为您的 Super_Dashboard 和 User_Dashboard 路线是获取路线吗?也许尝试将它们更改为 any 以查看是否有效并从那里开始。


推荐阅读