public function dbInit() { exit; if (Yii::$app->db->dsn !== null) { Yii::$app->db->open(); return; } Console::output('需要初始并生成数据库设置 ....'); $dbHost = Console::prompt('请输入数据库地址', ['default' => 'localhost']); $dbName = Console::prompt('请输入数据库名称(并确定数据库已建立)', ['default' => Yii::$app->name]); $dbUsername = Console::prompt('请输入数据库账户名', ['default' => 'root']); $dbPassword = Console::prompt('请输入数据库密码(默认为空)', ['default' => '']); $dbPrefix = Console::prompt('请输入数据库表前缀', ['default' => 'pre_']); }
/** * 用户创建交互程序 * @param $userForm * @return mixed */ private function saveUserData($userForm) { $authManager = Yii::$app->authManager; $founder = $authManager->getRole('founder'); $userForm->username = Console::prompt('请先创建创始人用户', ['default' => 'admin']); $userForm->email = Console::prompt('请先创建创始人邮箱', ['default' => '*****@*****.**']); $userForm->password = Console::prompt('请先创建创始人密码', ['default' => 'admin']); if (!($user = $userForm->register())) { Console::output('输入数据验证错误'); foreach ($userForm->getErrors() as $k => $v) { Console::output($k . ':' . PHP_EOL . implode(PHP_EOL, $v)); } Console::output('请重新输入'); $this->saveUserData($user); } $user->setAttributes([]); $success = $user->save(); $uid = $success ? $user->id : 1; // 用户创建成功则指定用户id,否则指定id为1的用户为创始人. $founder && $authManager->assign($founder, $uid); // 指定创始人身份 return $success; }