2016-08-22 86 views
1

我正在laravel的一个项目中工作,这个项目需要访问者注册为简单用户,以有限权限访问网站公共部分的某些功能,还需要管理管理员帐户,这些帐户在执行诸如创建,更新和删除公共区域上显示的内容。如何在Laravel中为用户和管理员创建单独的帐户?

如何在没有必要使用用户角色的情况下执行此操作?

+0

要单独维护它们,您可以使用多个守卫。参考 - http://stackoverflow.com/a/39009223/3113599 – Gaurav

回答

2

最简单的方法是将is_admin列添加到users表(其值可能为1或0)。

+0

这有帮助吗? –

0

创建一个单独的列,例如管理员和用户的角色。然后创建一个单独的管理中间件组。 在App/http/middleware/adminmiddleware.php

public function handle($request, Closure $next, $guard = null) 
{ 
    if(Auth::check()) 
    { 
     if($request->user()->role=='Admin') 
     { 
      return $next($request); 
     } 
     return redirect('/home'); 
    } 

    return redirect('/home'); 
} 

添加路由保护

Route::group(['middleware' => ['App\Http\Middleware\Adminmiddleware']], function() { 
       // Routes for only admins 
    }); 
0

我做到这一点......我只是设置一个标志管理员和/或super_administrator,我用定义一些简单的中间件限制路由访问(你可以在控制器中使用中间件,但我通常不这样做,我只是将中间件粘贴到路由中)。

查看关于中间件的文档:https://laravel.com/docs/5.2/middleware 您可以访问Auth :: user() - > admin来检查中间件,如果您需要更多信息,只需询问我将复制粘贴一些我使用的代码。

对于更复杂的角色,用户可以访问某些地区和一些不这样做,你有laravel文档检查出的政策和授权: https://laravel.com/docs/5.2/authorization

相关问题