欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > php >内容正文

php

PHP - 后台权限

发布时间:2023/12/20 php 30 豆豆
生活随笔 收集整理的这篇文章主要介绍了 PHP - 后台权限 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

PHP 后台权限 分为
权限,角色,和用户



角色有不同的权限,用户有不同的角色,当然你也可以让用户只有一个角色。
所以我们要建四个表

public function up(){//角色表Schema::create('admin_roles', function (Blueprint $table) {$table->increments('id');$table->string('name',30)->default('');$table->string('description',100)->default('');$table->timestamps();});//权限表Schema::create('admin_permissions', function (Blueprint $table) {$table->increments('id');$table->string('name',30)->default('');$table->string('description',100)->default('');$table->timestamps();});//角色权限表Schema::create('admin_permission_roles', function (Blueprint $table) {$table->increments('id');$table->integer('role_id');$table->integer('permission_id');$table->timestamps();});//用户角色表Schema::create('admin_role_user', function (Blueprint $table) {$table->increments('id');$table->integer('role_id');$table->integer('user_id');});}

然后进行模型关联
1.权限与角色 之间的多对多关联

//权限属于那个角色public function roles(){return $this->belongsToMany(\App\AdminRole::class,'admin_permission_roles','permission_id','role_id')->withPivot(['permission_id','role_id']);}/** 当前角色的所有权限*/public function permissions(){return $this->belongsToMany(\App\AdminPermission::class, 'admin_permission_role', 'permission_id', 'role_id')->withPivot(['permission_id', 'role_id']);}

2.角色与用户 之间的关联

/** 一个用户有哪些角色*/public function roles(){return $this->belongsToMany(\App\AdminRole::class, 'admin_role_user', 'user_id', 'role_id')->withPivot(['user_id', 'role_id']);}

3 使用Gate来进行权限控制,在路由 和 前台 一起进行权限控制。

$permissions = \App\AdminPermission::with('roles')->get();foreach ($permissions as $permission) {Gate::define($permission->name, function($user) use($permission) {return $user->hasPermission($permission);});}//路由Route::group(['middleware'=>'can:system'], function (){});//前台@can('post')@endcan

总结

以上是生活随笔为你收集整理的PHP - 后台权限的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。