繁体   English   中英

未定义Laravel路线[仪表板]

[英]Laravel Route [dashboard] is not defined

今天第一次尝试与Laravel一起玩。 尝试访问时出现以下错误:

InvalidArgumentException

路由[dashboard]未定义。

路线/ web.php

Route::get('/', ['as' => '/', 'uses' => 'LoginController@getLogin']);
Route::post('/login', ['as' => 'login', 'uses' => 'LoginController@postLogin']);
Route::get('/logout', ['as' => 'logout', 'uses' => 'LoginController@getLogout']);

Route::group(['middleware' => ['authenticate', 'roles']], function (){
    Route::get('/dashboard', ['as' => 'dashboard', 'uses' => 'DashboardController@dashboard']);
});

LoginController.php

class LoginController extends Controller
{
    use AuthenticatesUsers;

    protected $username = 'username';
    protected $redirectTo = '/';
    protected $guard = 'web';

    public function getLogin()
    {
        if (Auth::guard('web'))
        {
            return redirect()->route('dashboard');
        }
        return view('login');
    }

    public function postLogin(Request $request)
    {
        $auth = Auth::guard('web')->attempt([
            'username' => $request->username,
            'password' => $request->password,
            'active' => 1]);
        if ($auth)
        {
            return redirect()->route('dashboard');
        }
        return redirect()->route('/');
    }

    public function getLogout()
    {
        Auth::guard('web')->logout();
        return redirect()->route('/');
    }
}

错误

尝试这个:

Route::get('/dashboard','DashboardController@dashboard')->name('dashboard');

当您使用它命名路线时,您将添加两个名称dashbbaorddashboard,因为您使用asname

Route::group(['middleware' => ['authenticate', 'roles']], function (){
    Route::get('/dashboard', ['uses' => 'DashboardController@dashboard'])->name('dashboard');
});

这会起作用

asname() 您应该使用以下两种之一:

Route::group(['middleware' => ['authenticate', 'roles']], function (){
    Route::get('/dashboard', 'DashboardController@dashboard')->name('dashboard');
});

要么

Route::group(['middleware' => ['authenticate', 'roles']], function (){
    Route::get('/dashboard', [
    'as' => 'dashboard', 
    'uses' => 'DashboardController@dashboard']);
});

之后,使用php artisan route:clear清除路由缓存

最后,您可以使用php artisan route:list列出所有路由并进行操作绑定

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM