laravel 5

时间:2015-10-27 20:58:51

标签: php laravel-5

我目前在登录页面后面有/仪表板路由,登录后会将您带到管理面板。

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

这很好用。但是如果没有登录,我无法弄清楚如何阻止访问管理面板中的所有链接。如何阻止所有仪表板/ {}路由? 请注意 - 我还在学习laravel。

2 个答案:

答案 0 :(得分:2)

您可以使用Route :: group()来包装所有管理路由并使它们使用auth中间件,例如:

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 :(得分:1)

你可以做的是,你可以创建一个控制器,让我们说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');
     });
 });