/** * Lists all AliasUrl models. * * @return mixed */ public function actionIndex() { $view = $this->getView(); AppAssets::register($view); $model = new Crud(); $model->db_connection = 'db'; $basePath = str_replace('/vendor/yiisoft/yii2', '', AppFile::useBackslash(Yii::getAlias('@yii'))); if (is_dir($basePath . '/models')) { $model->models_path = 'app/models'; if (!is_dir($basePath . '/models/search')) { mkdir($basePath . '/models/search'); } $model->models_search_path = 'app/models/search'; } else { $model->models_path = 'common/models'; if (!is_dir(Yii::getAlias('@common') . '/models/search')) { mkdir(Yii::getAlias('@common') . '/models/search'); } $model->models_search_path = 'common/models/search'; } if (is_dir($basePath . '/controllers')) { $model->controllers_path = 'app/controllers'; } else { $model->controllers_path = 'frontend/controllers'; } $model->exclude_models = 'user,migration'; $model->exclude_controllers = 'user,migration'; return $this->render('index', ['model' => $model, 'tables' => self::getTables()]); }
/** * @param $path * * @return int */ public static function folderCountInPath($path) { $path = AppFile::useBackslash($path); $path = AppFile::removeTrailingBackSlash($path); return sizeof(explode('/', $path)); }
/** * @param $model */ private function makeCrud($model) { $generator = new \yii\gii\generators\crud\Generator(); $generator->enableI18N = TRUE; $generator->modelClass = AppFile::useForwardSlash($this->models_path . chr(92) . $model); $generator->searchModelClass = AppFile::useForwardSlash($this->models_search_path . chr(92) . $model); $generator->controllerClass = AppFile::useForwardSlash($this->controller_path . chr(92) . $model . 'Controller'); if ($this->crud_template != 'default') { $generator->templates[$this->crud_template] = Yii::getAlias($this->crud_template_path); $generator->template = $this->crud_template; } else { $generator->template = 'default'; } $files = $generator->generate(); foreach ($files as $file) { $file->path = AppFile::useBackslash($file->path); $dir = AppFile::removeFileInPath($file->path); AppFile::buildPath($dir); $content = $file->content; if (strpos($file->path, '/views/') != FALSE) { $dir_name = trim(preg_replace('/([A-Z])/', " \$1", $model)); $dir_name = strtolower(str_replace(' ', '-', $dir_name)); $path = AppFile::useBackslash(Yii::getAlias('@' . $this->controller_path)) . '/' . $dir_name; $file->path = AppFile::fileFromPath($file->path); $path = preg_replace('/\\/controllers\\//', '/views/', $path); AppFile::buildPath($path); $file->path = $path . '/' . $file->path; } AppFile::writeFile($file->path, $content); } }