4.3.应用安装
应用安装时自动调用应用文件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]); |