我目前在登录页面后面有/dashboard路由,登录后会将您带到管理面板。
Route::get('dashboard', ['middleware' => 'auth', function()
{
return view('dash.dashboard');
}]);
这很好用。但我不知道如果没有登录,如何阻止访问管理面板中的所有链接。我如何阻止所有面板/{}路由?注意——我还在学习拉拉威尔。
您可以使用Route::group()包装所有管理路由,并使它们使用身份验证中间件,例如:
Route::group(['middleware' => ['foo', 'bar']], function()
{
Route::get('/', function()
{
// Has Foo And Bar Middleware
});
Route::get('user/profile', function()
{
// Has Foo And Bar Middleware
});
});
请参阅文档
您可以创建一个控制器,比如DashboardController
,并创建一个路由,如下所示:
$router->get('dashboard', 'DashboardController@index');
// 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');
}
}
在这个控制器中创建其他函数,所以每次调用这个控制器中的函数时,它都会检查auth中间件。这是一个很好的方法。
另一种方法是使用路由组。
$router->group(['middleware' => 'auth'], function() {
$router->get('dashboard', function(){
return view('dash.dashboard');
});
});