我正在laravel的一个项目中工作,这个项目需要访问者注册为简单用户,以有限权限访问网站公共部分的某些功能,还需要管理管理员帐户,这些帐户在执行诸如创建,更新和删除公共区域上显示的内容。如何在Laravel中为用户和管理员创建单独的帐户?
如何在没有必要使用用户角色的情况下执行此操作?
我正在laravel的一个项目中工作,这个项目需要访问者注册为简单用户,以有限权限访问网站公共部分的某些功能,还需要管理管理员帐户,这些帐户在执行诸如创建,更新和删除公共区域上显示的内容。如何在Laravel中为用户和管理员创建单独的帐户?
如何在没有必要使用用户角色的情况下执行此操作?
最简单的方法是将is_admin
列添加到users
表(其值可能为1或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
});
我做到这一点......我只是设置一个标志管理员和/或super_administrator,我用定义一些简单的中间件限制路由访问(你可以在控制器中使用中间件,但我通常不这样做,我只是将中间件粘贴到路由中)。
查看关于中间件的文档:https://laravel.com/docs/5.2/middleware 您可以访问Auth :: user() - > admin来检查中间件,如果您需要更多信息,只需询问我将复制粘贴一些我使用的代码。
对于更复杂的角色,用户可以访问某些地区和一些不这样做,你有laravel文档检查出的政策和授权: https://laravel.com/docs/5.2/authorization
要单独维护它们,您可以使用多个守卫。参考 - http://stackoverflow.com/a/39009223/3113599 – Gaurav