コード例 #1
0
 /**
  * Deletes an existing Table model.
  * If deletion is successful, the browser will be redirected to the 'index' page.
  * @param integer $id
  * @return mixed
  */
 public function actionDelete($id)
 {
     try {
         $model = $this->findModel($id);
         if ($model != null) {
             PhysicalTableGenerator::dropTable($model);
             //delete model class and crud
             if ($model->model_class != null) {
                 if (file_exists(\Yii::getAlias('@' . str_replace('\\', '/', ltrim($model->model_class, '\\'))) . ".php")) {
                     unlink(\Yii::getAlias('@' . str_replace('\\', '/', ltrim($model->model_class, '\\'))) . ".php");
                 }
             }
             if ($model->model_base_class != null) {
                 if (file_exists(\Yii::getAlias('@' . str_replace('\\', '/', ltrim($model->model_base_class, '\\'))) . ".php")) {
                     unlink(\Yii::getAlias('@' . str_replace('\\', '/', ltrim($model->model_base_class, '\\'))) . ".php");
                 }
             }
             if ($model->model_search_class != null) {
                 if (file_exists(\Yii::getAlias('@' . str_replace('\\', '/', ltrim($model->model_search_class, '\\'))) . ".php")) {
                     unlink(\Yii::getAlias('@' . str_replace('\\', '/', ltrim($model->model_search_class, '\\'))) . ".php");
                 }
             }
             if ($model->controller_class != null) {
                 if (file_exists(\Yii::getAlias('@' . str_replace('\\', '/', ltrim($model->controller_class, '\\'))) . ".php")) {
                     unlink(\Yii::getAlias('@' . str_replace('\\', '/', ltrim($model->controller_class, '\\'))) . ".php");
                 }
             }
             if ($model->view_path != null) {
                 $this->deleteDirectory(\Yii::getAlias($model->view_path));
             }
         }
         foreach ($model->fields as $field) {
             $field->delete();
         }
         $model->delete();
     } catch (\Exception $e) {
         $msg = isset($e->errorInfo[2]) ? $e->errorInfo[2] : $e->getMessage();
         \Yii::$app->getSession()->setFlash('error', $msg);
         return $this->redirect(Url::previous());
     }
     // TODO: improve detection
     $isPivot = strstr('$id', ',');
     if ($isPivot == true) {
         return $this->redirect(Url::previous());
     } elseif (isset(\Yii::$app->session['__crudReturnUrl']) && \Yii::$app->session['__crudReturnUrl'] != '/') {
         Url::remember(null);
         $url = \Yii::$app->session['__crudReturnUrl'];
         \Yii::$app->session['__crudReturnUrl'] = null;
         return $this->redirect($url);
     } else {
         return $this->redirect(['index']);
     }
 }
コード例 #2
0
ファイル: _form.php プロジェクト: febfeb/yii2-dynamic-field
                            <span class="panel-title-address">Address: <?php 
    echo $index + 1;
    ?>
</span>
                            <button type="button" class="pull-right remove-item btn btn-danger btn-xs"><i
                                    class="fa fa-minus"></i></button>
                            <div class="clearfix"></div>
                        </div>
                        <div class="panel-body">
                            <?php 
    // necessary for update action.
    if (!$modelField->isNewRecord) {
        echo Html::activeHiddenInput($modelField, "[{$index}]id");
    }
    /* var $form ActiveForm; */
    $basicItems = \febfeb\dynamicfield\modules\components\PhysicalTableGenerator::getType();
    $dbItems = \yii\helpers\ArrayHelper::map(\febfeb\dynamicfield\modules\models\Table::find()->where("id != '{$modelTable->id}'")->all(), "slug_name", "name");
    $items = array_merge($basicItems, $dbItems);
    ?>

                            <div class="row">
                                <div class="col-sm-6">
                                    <?php 
    echo $form->field($modelField, "[{$index}]name")->textInput(['maxlength' => true]);
    ?>
                                </div>
                                <div class="col-sm-6">
                                    <?php 
    echo $form->field($modelField, "[{$index}]type")->dropDownList($items);
    ?>
                                </div>