Laravel 5.4-Route [/ dashboard]未定义

时间:2017-05-24 16:55:15

标签: php laravel-5.4

这是我的路线档案

    Route::get('/' , ['as' => '/' , 'uses'=> 'loginController@getlogin']);
    Route::post('/login', ['as' => 'login', 'uses'=> 'loginController@postlogin']);

    Route::group(['middleware' =>['authen','roles']], function () {
    Route::get('/logout' ,['as'=>'logout', 'uses'=> 'loginController@getLogout']);
    Route::get('/dashboard',['as'=>'dashboard', 'uses'=> 'dashboardController@dashboard']);
    });

当我尝试登录时,在UrlGenerator.php第304行显示 InvalidArgumentException: 路线[/仪表板]未定义。 我该怎么办?

1 个答案:

答案 0 :(得分:2)

如评论中所述,这是解决方案:

Laravel使用三个不同的概念来重定向用户(甚至只是显示链接):

  • 按网址
  • by Action
  • by Route

网址重定向

使用重定向帮助程序快捷方式

redirect('/dashboard')

或适当的方法

redirect()->to('/dashboard');

动作重定向

redirect()->action('dashboardController@dashboard')

动作是控制器的一种方法。 要使重定向起作用,路由必须指向此操作。

路由重定向

redirect()->route('dashboard')

要使重定向起作用,路由必须具有名称。 要为路径指定名称,您必须流畅地链接方法name,如下所示:

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

您的案例

在您的情况下,您将重定向到路线而不是网址。因此,你有两个解决方案:

  • 为您的路线添加名称
  • 重定向到网址而不是路由