PHP code example of haojohnny / permission

1. Go to this page and download the library: Download haojohnny/permission library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

haojohnny / permission example snippets




use Haojohnny\Permission\Models\Roles;
use Haojohnny\Permission\Models\Permissions;

$role = Roles::create(['name' => 'editor']);
$permission = Permissions::create(['name' => 'edit articles']);




use Haojohnny\Permission\Models\Roles;
use Haojohnny\Permission\Models\Permissions;

$role = Roles::findOrCreate(['name' => 'editor']);
$permission = Permissions::findOrCreate(['name' => 'permission1']);



namespace app\index\model;

use think\Model;
use Haojohnny\Permission\Traits\HasRoles;

class User extends Model
{
    use HasRoles;

    // ...
}



$user = User::get(1);
// 添加一个权限
$user->givePermission('permission1');

// 添加多个权限
$user->givePermission('permission1', 'permission2');

// 支持数组
$user->givePermission(['permission1', 'permission2']);
$user->givePermission(['permission1', 'permission2'], ['pemission3', 'permission4']);

// 支持字符串和数组混合
$user->givePermission('permission1', ['permission2', 'permission3']);



$user = User::get(1);
// 撤销一个权限
$user->revokePermission('permission1');

// 也可以像权限管理那样支持字符串和数组及两种混合形式。
$user->revokePermission('permission1', ['permission2', 'permission2']);


use Haojohnny\Permission\Models\Roles;

$role = Roles::create(['name' => 'editor']);

// 为角色添加权限
$role->givePermission('permission1');
$role->givePermission('permission1', ['permission2', 'permission2']);

// 为角色撤销权限
$role->revokePermission('permission1', ['permission2', 'permission2']);



$user = User::get(1);
// 分配一个角色
$user->assignRole('editor');

// 也支持字符串和数组及两种混合形式。
$user->assignRole('editor1',['editor2', 'editor3']);



$user = User::get(1);
// 撤销一个角色
$user->revokeRole('editor');

// 也支持字符串和数组及两种混合形式。
$user->revokeRole('editor1', ['editor2', 'editor3']);



$user = User::get(1);
$user->hasPermission('permission1');


$user = User::get(1);
$user->hasRole('editor1');
shell
$ mkdir -p ./database/migrations

$ cp ./vendor/haojohnny/permission/config/permission.php ./config/
$ cp ./vendor/haojohnny/permission/database/migrations/20190531110604_create_permission_tables.php ./database/migrations/
shell
$ php think migrate:create CreatePermissionTables