我有一個關於過濾控制器及其對多個用戶角色的操作的問題。可以說我有一個名爲控制器myController的:Laravel控制器構造函數中的多個角色過濾器
public class MyController extends \BaseController
{
public static function index()
{
}
public static function show()
{
}
public static function create()
{
}
public static function store()
{
}
public static function other()
{
}
}
,我有2個過濾器的每個角色,名爲admin和工作人員:
Route::filter('admin', function()
{
// Lines of code to get role
if($role != 'admin') return View::make('errors.401');
});
Route::filter('staff', function()
{
// Lines of code to get role
if($role != 'staff') return View::make('errors.401');
});
然後,我嘗試使用beforeFilter上的構造myController的:
public function __construct()
{
$this->beforeFilter('admin', ['only' => ['index', 'show', 'create', 'store']]);
$this->beforeFilter('staff', ['only' => ['index', 'show']]);
}
當我將第一個beforeFilter,它的工作原理如我所料(當我登錄到我的工作人員的應用程序,我無法訪問索引,展示,創建和存儲方法)。但是,當我添加第二個過濾器並以員工身份再次登錄時,我無法訪問索引並顯示操作,這是我希望員工可以訪問的操作。
我的問題是,是否可以在控制器的構造函數中爲多個角色定義過濾器? (在這種情況下,我想讓操作索引和顯示可由管理員和員工訪問,但創建和存儲只能由管理員訪問)如果可能,我該如何實現?
謝謝。
不,管理員和員工是2個不同的角色,彼此不相關。 – AWJ 2014-09-20 04:05:13