/** * @param $override * @param $array_exclude * @param array $models */ private function makeModels($override, $array_exclude, $models = array()) { if (!sizeof($models)) { $models = $this->connection->schema->tableNames; } foreach ($models as $model) { if (!in_array($model, $array_exclude) && $override || !$override) { $generator = new \yii\gii\generators\model\Generator(); $generator->enableI18N = TRUE; $generator->tableName = $model; $generator->modelClass = self::createModelName($model); $generator->template = 'default'; $generator->ns = AppFile::useForwardSlash($this->namespace . '/' . AppFile::getLastFolderInPath($this->models_path)); $files = $generator->generate(); $path = Yii::getAlias('@' . $this->models_path); AppFile::buildPath($path); $path = AppFile::useBackslash($path . '/' . $generator->modelClass . '.php'); $content = $files[0]->content; AppFile::writeFile($path, $content); } } }
<?php $modGen = new yii\gii\generators\model\Generator(); $className = $modGen->generateClassName($tableName); $title = yii\helpers\Inflector::pluralize($className); echo "<?php\n"; ?> use app\models\<?php echo $className; ?> ; use yii\helpers\Html; <?php echo "?>"; ?> <div class="panel panel-primary"> <div class="panel-heading"> <h3 class="panel-title"><i class="glyphicon glyphicon-list"></i>Manage <?php echo $title; ?> </h3> </div> <table id="<?php echo $tableName; ?> _grid"> <tr> <?php echo "<?php \${$tableName}Mod = new {$className}; ?>\n"; ?>
public function getRelatedFieldDtls($columnName) { $relatedFieldDtls = []; $foreignKeyInfo = []; $foreignKeyInfo = $this->getForeignKeyInfo($columnName); if ($foreignKeyInfo !== null) { $foreignTable = $foreignKeyInfo['foreignTable']; $foreignFieldName = $this->getNameAttributeOfTable($foreignTable); $modGen = new yii\gii\generators\model\Generator(); $relationName = $modGen->generateRelationName([], '', '', $columnName, false); // $relationName = lcfirst($relationName); $relatedFieldDtls['relationName'] = $relationName; $relatedFieldDtls['foreignFieldName'] = $foreignFieldName; return $relatedFieldDtls; } return; }