【问题标题】:Guest Student and Admin authentication来宾学生和管理员身份验证
【发布时间】:2015-08-04 22:39:50
【问题描述】:
我正在尝试使用 Laravel 4 管理用户角色,但我无法清楚地理解它是如何工作的,所以我需要一些解释。
这就是我想做的:
如果用户是访客(未登录),重定向到路由/
如果登录的用户角色等于student,则重定向到student/books
如果登录的用户角色等于admin,则重新定位到admin/index
我想要的是使用 slug 和用户角色进行过滤。 user 表具有以下列:
first_name | email | password |role
顺便说一句,我怎样才能做到这一点。我是 Laravel 的新手,所以我需要一个更好的解释。
我假设我需要的步骤是:
- 在
filters.php 中创建过滤器
- 在
routes.php 中创建路由组
【问题讨论】:
标签:
php
laravel
laravel-4
laravel-routing
【解决方案1】:
我假设您在会话Auth::user()->role 中拥有存储用户角色
filters.php
Route::filter('isAdmin', function()
{
if (Auth::guest() || Auth::user()->role !== "admin")
{
return Redirect::to('/');
}
elseif(Auth::user()->role == "admin"){
}
});
Route::filter('isStudent', function()
{
if (Auth::guest() || Auth::user()->role !== "student")
{
return Redirect::route('adm_index');
} }
elseif(Auth::user()->role == "student"){
return Redirect::route('std_books');
}
});
routes.php
Route::group(array('before' => 'isStudent'), function()
{
Route::get('student/books',array('as'=>'std_books','uses'=>'BookController@method_name'));
});
Route::group(array('before' => 'isAdmin'), function()
{
Route::get('admin/index',array('as'=>'adm_index','uses'=>'AdminController@method_name'));
});