=7.1.3"...">
美文网首页
laravel 权限管理模块

laravel 权限管理模块

作者: TT出你的玄妙 | 来源:发表于2018-11-30 10:24 被阅读0次

    1.项目目录下composer.json添加:

    "require": {

            "php": ">=7.1.3",

            "fideloper/proxy": "~4.0",

            "laravel/framework": "5.6.*",

            "laravel/tinker": "~1.0",

            "zizaco/entrust": "5.2.x-dev"

        },

    运行:composer update;

    2.在config/app.php and add the following to the providers array:

          Zizaco\Entrust\EntrustServiceProvider::class,

    3.在config/app.php and add the following to the aliases array:

           'Entrust'=>Zizaco\Entrust\EntrustFacade::class,

       运行:php artisan vendor:publish

    4.Open your config/auth.php and add the following to it:

    'providers'=>[

                'users'=>[

                        'driver'=>'eloquent',

                        'model'=>App\User::class,

                        'table'=>'users',   

             ],

    ],

    5.把下面添加到routeMiddleware array in app/Http/Kernel.php中:

    'role'=>\Zizaco\Entrust\Middleware\EntrustRole::class,

    'permission'=>\Zizaco\Entrust\Middleware\EntrustPermission::class,

    'ability'=>\Zizaco\Entrust\Middleware\EntrustAbility::class,

    运行:php artisan entrust:migration

               php artisan migrate

    6.创建模型app/Role.php,内容:

    <?php

    namespace App;

    use Zizaco\Entrust\EntrustRole;

    class Role extends EntrustRole

    {

    }

    7.创建模型app/Permission.php,内容:

    <?php

    namespace App;

    use Zizaco\Entrust\EntrustRole;

    class Permission extends EntrustRole

    {

    }

    8.在User中做如下修改:

    < ?php

    useZizaco\Entrust\Traits\EntrustUserTrait;//新添加

    class User extends Eloquent { 

    use EntrustUserTrait; //add this trait to your user model...  新引用

    }

    9.创建迁移:

    运行:php artisan make:seeder PermissionTableSeeder;

    写入一下内容:

    <?php

    use Illuminate\Database\Seeder;

    use App\Permission;

    use App\Role;

    use App\User;

    class PermissionTableSeeder extends Seeder

    {

        /**

        * Run the database seeds.

        *

        * @return void

        */

        public function run()

        {

            DB::statement('SET FOREIGN_KEY_CHECKS = 0');

            //清空权限相关的数据表

            Permission::truncate();

            Role::truncate();

            User::truncate();

            DB::table('role_user')->delete();

            DB::table('permission_role')->delete();

            DB::statement('SET FOREIGN_KEY_CHECKS = 1');

            //创建初始的管理员用户,if necessary

            $pilishen = User::create([

                'name' =>'pilishen',

                'email' =>'pilishen@126.com',

                'password' =>bcrypt('secret'),

            ]);

            //创建初始的role(初始的角色设定)

            $admin = Role::create([

                'name' => 'admin',

                'display_name' => '超级管理员',

                'description' => 'super admin role',

            ]);

            //创建相应的初始权限

            $manage_user = Permission::create([

                'name' =>'manage_user',

                'display_name' => '用户管理',

                'description' => '管理用户的权限'

            ]);

            //给角色赋予相应的权限

            $admin->attachPermission($manage_user);

            //给用户赋予相应的角色

            $pilishen->attachRole($admin);

        }

    }

    10.在DatabaseSeeder添加:

    public function run()

        {

            $this->call(PermissionTableSeeder::class);//新添加

        }

    运行:composer dump-autoload

                php artisan db:seed

    相关文章

      网友评论

          本文标题:laravel 权限管理模块

          本文链接:https://www.haomeiwen.com/subject/mhnpfqtx.html