/** * Creates a new model. * If creation is successful, the browser will be redirected to the 'view' page. */ public function actionCreate() { $model = new ProfileField(); $scheme = get_class(Yii::$app->db->schema); if ($model->load(Yii::$app->request->post())) { $model->loadDefaultValues(true); if ($model->validate()) { $sql = 'ALTER TABLE ' . Profile::tableName() . ' ADD `' . $model->varname . '` ' . $this->fieldType($model->field_type); if ($model->field_type != 'TEXT' && $model->field_type != 'DATE' && $model->field_type != 'BOOL' && $model->field_type != 'BLOB' && $model->field_type != 'BINARY') { $sql .= '(' . $model->field_size . ')'; } $sql .= ' NOT NULL'; if ($model->field_type != 'TEXT' && $model->field_type != 'BLOB' || $scheme != 'yii\\db\\mysql\\Schema') { if (!empty($model->default)) { $sql .= " DEFAULT '" . $model->default . "'"; } else { $sql .= $model->field_type == 'TEXT' || $model->field_type == 'VARCHAR' || $model->field_type == 'BLOB' || $model->field_type == 'BINARY' ? " DEFAULT ''" : ($model->field_type == 'DATE' ? " DEFAULT '0000-00-00'" : " DEFAULT 0"); } } $model->getDb()->createCommand($sql)->execute(); $model->save(); $this->redirect(['view', 'id' => $model->id]); } } $this->registerScript(); return $this->render('create', ['model' => $model]); }