2015-10-27 116 views
0

我目前有登錄頁面後面的/儀表板路由,它在登錄後將您帶到管理面板。laravel 5中的高級驗證路由

Route::get('dashboard', ['middleware' => 'auth', function() 
{ 
    return view('dash.dashboard'); 
}]); 

這是工作的罰款。但我不知道如何防止訪問管理面板中的所有鏈接,如果沒有登錄。我怎樣才能防止所有的儀表板/ {}路線? 注意 - 我還在學習laravel。

回答

2

您可以使用路線::組()來包裝你的所有管理路線,讓他們使用身份驗證的中間件,例如:

Route::group(['middleware' => ['foo', 'bar']], function() 
{ 
    Route::get('/', function() 
    { 
     // Has Foo And Bar Middleware 
    }); 

    Route::get('user/profile', function() 
    { 
     // Has Foo And Bar Middleware 
    }); 

}); 

查看更多在documentation

1

你可以做什麼,你可以創建一個控制器,讓我們說DashboardController並創建一個路由,如下所示:

$router->get('dashboard', '[email protected]'); 
// calling the index function of your DashboardController 
DashboardController

而且,這樣做的你的構造:

class DashboardController extends BaseController 
{ 
    public function __construct() 
    { 
     $this->middleware('auth'); 
    } 

    public function index() 
    { 
     return view('dash.dashboard'); 
    } 
} 

在該控制器創建等功能,所以每次在該控制器的函數被調用,它將檢查身份驗證的中間件。這是做這件事的好方法。

另一種方法是使用路由組。

$router->group(['middleware' => 'auth'], function() { 
    $router->get('dashboard', function(){ 
     return view('dash.dashboard'); 
    }); 
});