/** * Creates a new Outputbaseline model. * If creation is successful, the browser will be redirected to the 'view' page. * @return mixed */ public function actionCreate() { $model = new Outputbaseline(); $template = [new Templatetable()]; if (Yii::$app->request->post()) { /* Template Table */ $template = Model::createMultiple(Templatetable::classname()); Model::loadMultiple($template, Yii::$app->request->post()); $string_sql = ''; $nama_kolom = []; $string_integer = ''; $string_string = ''; /* Format table_name = id_base_line_date_created */ $string_sql .= ' CREATE TABLE to_' . $_POST['Outputbaseline']['id_base_line'] . '_' . date('Y_m_d_h_i_s') . ' ( id serial, '; foreach ($template as $tmp) { $type = ''; if ($tmp->column_type == 0) { $type = 'character varying'; $string_string .= strtolower(str_replace([' '], [''], $tmp->column_name)) . ','; } elseif ($tmp->column_type == 1) { $type = 'integer'; $string_integer .= strtolower(str_replace([' '], [''], $tmp->column_name)) . ','; } $nama_kolom[strtolower(str_replace([' '], [''], $tmp->column_name))] = $tmp->column_name; $string_sql .= strtolower(str_replace([' '], [''], $tmp->column_name)) . ' ' . $type . ','; } $string_sql .= ' PRIMARY KEY( id ) ); '; /* Template Table */ /* Tempalte Model */ //$script_model = ''; $table_name = 'To' . $_POST['Outputbaseline']['id_base_line'] . '' . date('Ymdhis'); $script_model = "<?php\n\nnamespace kemdikbud\\to\\models;\n\nuse Yii;\n\n/**\n * This is the model class for table \"to_2_2015_07_13_11_06_05\".\n *\n */\nclass " . $table_name . " extends \\yii\\db\\ActiveRecord\n{\n /**\n * @inheritdoc\n */\n public static function tableName()\n {\n return 'to_" . $_POST['Outputbaseline']['id_base_line'] . '_' . date('Y_m_d_h_i_s') . "';\n }\n\n /**\n * @inheritdoc\n */\n public function rules()\n {\n return [\n [['no'], 'integer'],\n [['uraian', 'keterangan'], 'string']\n ];\n }\n\n /**\n * @inheritdoc\n */\n public function attributeLabels()\n {\n return " . str_replace(['{', ':', '}'], ['[', '=>', ']'], json_encode($nama_kolom)) . ";\n }\n}\n "; $fp = fopen(Yii::getAlias('@vendor/kemdikbud/yii2-target-output/models/') . $table_name . '.php', 'w'); fwrite($fp, $script_model); fclose($fp); /* Template Model */ /* Save Model */ $datenow = date('Y-m-d h:i:s'); $model->id_base_line = $_POST['Outputbaseline']['id_base_line']; $model->nama_tabel = 'to_' . $_POST['Outputbaseline']['id_base_line'] . '_' . date('Y_m_d_h_i_s'); $model->nama_kolom_array = str_replace(['{', ':', '}'], ['[', '=>', ']'], json_encode($nama_kolom)); $model->nama_kolom_json = json_encode($nama_kolom); $model->nama_class = $table_name; $model->date_created = $datenow; //$model->id_user_created = $_POST['Outputbaseline']['id_base_line']; //$model->date_updated = $_POST['Outputbaseline']['id_base_line']; //$model->id_user_updated = $_POST['Outputbaseline']['id_base_line']; $model->approved = false; //$model->date_approved = $_POST['Outputbaseline']['id_base_line']; /* Save Model */ if ($model->save()) { Yii::$app->db->createCommand($string_sql)->execute(); return $this->redirect(['viewoutput', 'id' => $model->id_base_line]); } else { return $this->render('create', ['model' => $model]); } } else { return $this->render('create', ['model' => $model, 'template' => empty($template) ? [new Templatetable()] : $template]); } }