来宾学生和管理员认证

时间:2015-05-22 19:35:22

标签: php laravel laravel-4 laravel-routing

我正在尝试使用Laravel 4管理用户角色,但我无法清楚地了解它是如何工作的,所以我需要一些解释。 这就是我想要做的事情:

  

如果用户是访客(未登录),请重定向到路由/

     

如果记录的用户角色等于student,则重定向到student/books

     

如果记录的用户角色等于admin,请重新定位到admin/index

我想要的是用slug和用户角色进行过滤。 user表包含以下列:

first_name | email | password |role

我怎么能这样做,顺便说一句。我是Laravel的新手,所以我需要更好的解释。

我假设我需要的步骤是:

  • filters.php
  • 中创建过滤器
  • routes.php
  • 中创建路线组

1 个答案:

答案 0 :(得分: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'));  
});