4.3.应用安装

更新时间:2023-10-10 18:43:15 作者:源小印 52


应用安装时自动调用应用文件Providers/InstallServiceProvider.php中的boot方法

3.1.1. 生成数据库表

安装应用时如果需要生成应用数据表则在安装文件的boot()方法中注册数据表生成方法例如

 public function boot()

{

...

        //数据表生成方法

        $this->registerMigrations();

    }

 

 protected function registerMigrations()

    {

        if (Sanctum::shouldRunMigrations()) {

             $this->loadMigrationsFrom(config('yxy_config.path').'Admin/database/migrations');

        }

        //运行数据库表操作命令

        Artisan::call('migrate');

  }

3.1.2. yxy_packages数据表插入应用数据

未插入应用表的应用将不会自动注册生效

 public function boot()

{

...

        //数据表生成方法

        $this->insertAppTable();

    }

 

private function insertAppTable()

    {

        //应用表增加记录

        app('yxy-app')->firstOrCreate([

            'name' => self::APP_NAME, //应用命名

            'app_code' => self::APP_CODE, //应用编号

            'version' => self::APP_VERSION, //应用版本

            'description' => self::APP_DESCRIPTION, //应用说明

            'status' => 1

        ]);

}

3.1.3. 插入后台菜单栏目

按需选择如需在后台管理该应用则需要插入一条菜单栏目数据

        //插入菜单

        $menu_inserts = [

            ['name' => self::APP_NAME, 'parent_id' => 0, 'order' => 10, 'url' => 'process', 'icon' => '', 'display_type' => 0]

        ];

 

        app('yxy-admin')->menuInsert($menu_inserts);

   3.1.4. 插入应用权限

按需选择如需对应用接口进行权限控制则添加

后台权限名称固定格式admin.应用名.具体权限名称

前台权限名称固定格式web.应用名.具体权限名称

//插入应用权限

app('yxy-permission')->firstOrCreate(['name' => 'admin.process.update_task, 'team_id' => app('yxy-team')->getTeamId()], ['title' => self::APP_NAME, 'parent_id' => 0]);