2014-12-09 88 views
0

如何添加過濾器,當我登錄時,我輸入用戶/登錄或用戶/註冊的url,我想重定向到家。如何添加過濾器laravel

,當我退出,我要保護用戶/面板

回答

1

Laravel有過濾器選項的官方網站狀態的過濾器

路由過濾器提供限制訪問的一種便捷方式如下到給定的路線,這對於創建需要驗證的網站區域很有用。 Laravel框架中包含幾個過濾器,包括auth過濾器,auth.basic過濾器,guest過濾器和csrf過濾器。這些位於app/filters.php文件中。

定義Route濾波器

Route::filter('old', function() 
{ 
if (Input::get('age') < 200) 
{ 
    return Redirect::to('home'); 
} 
}); 

如果過濾器返回一個響應,該響應被認爲是 響應於所述請求和所述路徑將不會執行。 之後的任何路線上的過濾器也會被取消。

附加的過濾器到路由

Route::get('user', array('before' => 'old', function() 
{ 
    return 'You are over 200 years old!'; 
})); 

You can find complete documentation here

+0

我添加了這段代碼,但是我仍然可以在登錄時進入用戶/登錄 – Jensej 2014-12-09 14:18:19

0

Route.php

Route::group(array('prefix'=>'user','before' => 'isUser'), function() { 
    Route::get('register', array('as' => 'register', 'uses' => '[email protected]')); 

    Route::get('login', array('as' => 'login', 'uses' => '[email protected]')); 
    // add post routes as required 
}); 

filters.php

Route::filter('isUser', function() 
{ 
    // I have used Sentry for user Authorisation 

    if (Sentry::check()) { 
     return Redirect::to('/')->with('message', "You are already logged in."); 
    } 
    else{ 
     // benefit of using Redirect::guest() is that you can use Redirect::intended() 
     return Redirect::guest('login'); 
    } 
});