Example #1
0
 /**
  * 获取模块Model
  * @return mixed|null
  */
 public function getModuleModel()
 {
     if ($this->_moduleModel === null) {
         // 默认根据缓存的模块数据生成模块model
         $class = $this->module->moduleModelClass;
         $model = new $class();
         $class::populateRecord($model, ModuleModel::models()[$this->id]);
         $this->setModuleModel($model);
     }
     return $this->_moduleModel;
 }
 /**
  * 扩展模块表
  */
 public function initModuleTable()
 {
     $tableName = Module::tableName();
     $this->createTable($tableName, ['id' => Schema::TYPE_STRING . "(20) NOT NULL DEFAULT '' COMMENT '模块ID'", 'name' => Schema::TYPE_STRING . "(50) NOT NULL DEFAULT '' COMMENT '模块名称'", 'type' => Schema::TYPE_STRING . "(20) NOT NULL DEFAULT '' COMMENT '模块类型'", 'category' => Schema::TYPE_STRING . "(20) NOT NULL DEFAULT '' COMMENT '模块类型'", 'version' => Schema::TYPE_STRING . "(10) NOT NULL DEFAULT '' COMMENT '模块版本'", 'ability' => Schema::TYPE_STRING . "(100) NOT NULL DEFAULT '' COMMENT '模块功能简述'", 'description' => Schema::TYPE_TEXT . " NOT NULL COMMENT '模块详细描述'", 'author' => Schema::TYPE_STRING . "(50) NOT NULL DEFAULT '' COMMENT '模块作者'", 'site' => Schema::TYPE_STRING . " NOT NULL DEFAULT '' COMMENT '模块详情地址'", 'admin' => Schema::TYPE_BOOLEAN . " NOT NULL DEFAULT '0' COMMENT '是否有后台界面'", 'migration' => Schema::TYPE_BOOLEAN . " NOT NULL DEFAULT '0' COMMENT '是否有迁移数据'", 'reply_rule' => Schema::TYPE_BOOLEAN . " NOT NULL DEFAULT '0' COMMENT '是否启用回复规则'", 'created_at' => Schema::TYPE_INTEGER . " UNSIGNED NOT NULL DEFAULT '0' COMMENT '创建时间'", 'updated_at' => Schema::TYPE_INTEGER . " UNSIGNED NOT NULL DEFAULT '0' COMMENT '修改时间'"]);
     $this->addPrimaryKey('id', $tableName, 'id');
 }
 /**
  * 查找已安装的模块
  * @return array|\yii\db\ActiveRecord[]
  */
 public function findInstalledModules()
 {
     return Module::find()->indexBy('id')->all();
 }