public function install($model) { $class = "m151209_185057_migration"; require Yii::getAlias("@hass/install/migrations/" . $class . ".php"); $migration = new $class(); try { //yii2 迁移是在命令行下操作的。。会输出很多垃圾信息 ob_start(); if ($migration->up() == false) { ob_end_clean(); $model->addError("username", "数据库迁移失败"); return false; } } catch (\Exception $e) { ob_end_clean(); $model->addError("username", "数据表已经存在,或者其他错误!"); return false; } ob_end_clean(); $data = \Yii::$app->getCache()->get("install-site-form"); foreach ($data as $name => $value) { $config = new Config(); $config->name = preg_replace_callback('/([a-z]*)([A-Z].*)/', function ($matches) { return $matches[1] . "." . strtolower($matches[2]); }, $name); $config->value = $value; $config->save(); } $data = \Yii::$app->getCache()->get("install-admin-form"); $user = new User(); $user->setScenario("create"); $user->email = $data['email']; $user->username = $data['username']; $user->password = $data['password']; $user->create(); $connection = \Yii::$app->getDb(); $connection->createCommand()->insert('{{%auth_assignment}}', ['item_name' => 'admin', 'user_id' => $user->id, "created_at" => time()])->execute(); Module::getInstance()->setCookieValidationKey(); Module::getInstance()->setInstalled(); \Yii::$app->getCache()->flush(); return true; }
public function save() { Module::setDbConnection(['components' => ['db' => ['class' => 'yii\\db\\Connection', 'dsn' => "mysql:host={$this->hostname};dbname={$this->database};port={$this->port}", 'username' => $this->username, 'password' => $this->password, 'charset' => 'utf8', "tablePrefix" => $this->prefix]]]); return true; }
public function installConfig() { Module::getInstance()->setCookieValidationKey(); $data = \Yii::$app->getCache()->get(SiteForm::CACHE_KEY); foreach ($data as $name => $value) { $config = new Config(); $config->name = preg_replace_callback('/([a-z]*)([A-Z].*)/', function ($matches) { return $matches[1] . "." . strtolower($matches[2]); }, $name); $config->value = $value; $config->save(); } return true; }