public function actionSignup() { $signup = new signupForm(); if ($signup->load(Yii::$app->request->post()) && $signup->validate()) { echo 'success!'; echo '<br>' . $signup->username . "<br>"; // выбираем шаблон БД $db = new \yii\db\Connection(['dsn' => 'mysql:host=localhost;dbname=it_service_template', 'username' => 'root', 'password' => '', 'charset' => 'utf8']); $have_db = $db->createCommand('SHOW DATABASES LIKE "my_new_db"')->queryOne(); // проверяем таблицу accounts базы данных it_service_system на наличие аккаунта $account = accounts::find()->where(['name' => $signup->username])->andWhere(['email' => $signup->email])->one(); if (!$have_db && !$account) { // добавляем запись в таблицу аккаунта $db->createCommand('CREATE DATABASE my_new_db CHARACTER SET utf8 COLLATE utf8_general_ci')->execute(); //TODO: копируем таблицы из it_service_template в it_service_account_{account_id} // Получаем список таблиц из шаблона $template_tables = $db->createCommand('SHOW TABLES')->query(); // echo 'список таблиц из шаблона: <br>'; // foreach ( $template_tables as $t_table ){ // foreach ( $t_table as $ta ) echo $ta . '<br>'; // } // подключаемся к БД аккаунта $db = new \yii\db\Connection(['dsn' => 'mysql:host=localhost;dbname=my_new_db', 'username' => 'root', 'password' => '', 'charset' => 'utf8']); // создаем таблицы в новой БД по шаблону foreach ($template_tables as $t_table) { foreach ($t_table as $ta) { $db->createCommand('CREATE TABLE ' . $ta . ' LIKE it_service_template.' . $ta)->execute(); } } //TODO: скопировать данные справочников из таблиц шаблонной базы //$template_db_cartridge_types = CartridgeType::findAll(); // заносим аккаунт в таблицу it_service_system.accounts //------------------------------------------------------------------------- } else { echo "БД уже есть! : "; $ttt = json_encode($have_db); print_r($ttt . '<br>'); } } else { return $this->render('signup', ['model' => $signup]); } }