From 3e3e443544e8ee75fec8ed3d90dd7e76205feec7 Mon Sep 17 00:00:00 2001 From: Qiang Xue <qiang.xue@gmail.com> Date: Wed, 23 Apr 2014 19:36:56 -0400 Subject: [PATCH] Refactored the fix for #3222. --- extensions/gii/CHANGELOG.md | 1 + extensions/gii/generators/model/Generator.php | 27 ++++++++++++++------------- extensions/gii/generators/model/default/model.php | 2 +- framework/CHANGELOG.md | 1 + 4 files changed, 17 insertions(+), 14 deletions(-) diff --git a/extensions/gii/CHANGELOG.md b/extensions/gii/CHANGELOG.md index d968a22..8283494 100644 --- a/extensions/gii/CHANGELOG.md +++ b/extensions/gii/CHANGELOG.md @@ -6,6 +6,7 @@ Yii Framework 2 gii extension Change Log - Bug #1263: Fixed the issue that Gii and Debug modules might be affected by incompatible asset manager configuration (qiangxue) - Enh #3088: The gii module will manage their own URL rules now (qiangxue) +- Enh #3222: Added `useTablePrefix` option to the model generator for Gii (horizons2) 2.0.0-beta April 13, 2014 diff --git a/extensions/gii/generators/model/Generator.php b/extensions/gii/generators/model/Generator.php index 3af552d..632f4db 100644 --- a/extensions/gii/generators/model/Generator.php +++ b/extensions/gii/generators/model/Generator.php @@ -30,7 +30,7 @@ class Generator extends \yii\gii\Generator public $baseClass = 'yii\db\ActiveRecord'; public $generateRelations = true; public $generateLabelsFromComments = false; - public $useTablePrefix=false; + public $useTablePrefix = false; /** * @inheritdoc @@ -536,23 +536,24 @@ class Generator extends \yii\gii\Generator } /** - * Generates a the tablename with tableprefix usage . - * @param string $tableName the table name (which may contain schema prefix) - * @return string the generated table name if useTablePrefix == true return with {{%}} depending of the position of the prefix + * Generates the table name by considering table prefix. + * If [[useTablePrefix]] is false, the table name will be returned without change. + * @param string $tableName the table name (which may contain schema prefix) + * @return string the generated table name */ - public function generateTablename($tableName) + public function generateTableName($tableName) { if (!$this->useTablePrefix) { return $tableName; - } else { - $db = $this->getDbConnection(); - if (preg_match("/^{$db->tablePrefix}(.*?)$/", $tableName, $matches)) { - $tableName = '{{%'.$matches[1].'}}'; - } elseif (preg_match("/^(.*?){$db->tablePrefix}$/", $tableName, $matches)) { - $tableName = '{{'.$matches[1].'%}}'; - } - return $tableName; } + + $db = $this->getDbConnection(); + if (preg_match("/^{$db->tablePrefix}(.*?)$/", $tableName, $matches)) { + $tableName = '{{%' . $matches[1] . '}}'; + } elseif (preg_match("/^(.*?){$db->tablePrefix}$/", $tableName, $matches)) { + $tableName = '{{' . $matches[1] . '%}}'; + } + return $tableName; } /** diff --git a/extensions/gii/generators/model/default/model.php b/extensions/gii/generators/model/default/model.php index 44b7c61..f9e4b05 100644 --- a/extensions/gii/generators/model/default/model.php +++ b/extensions/gii/generators/model/default/model.php @@ -39,7 +39,7 @@ class <?= $className ?> extends <?= '\\' . ltrim($generator->baseClass, '\\') . */ public static function tableName() { - return '<?= $generator->generateTablename($tableName) ?>'; + return '<?= $generator->generateTableName($tableName) ?>'; } <?php if ($generator->db !== 'db'): ?> diff --git a/framework/CHANGELOG.md b/framework/CHANGELOG.md index a2aded8..da3fa47 100644 --- a/framework/CHANGELOG.md +++ b/framework/CHANGELOG.md @@ -28,6 +28,7 @@ Yii Framework 2 Change Log - Enh #3108: Added `yii\debug\Module::enableDebugLogs` to disable logging debug logs by default (qiangxue) - Enh #3132: `yii\rbac\PhpManager` now supports more compact data file format (qiangxue) - Enh #3154: Added validation error display for `GridView` filters (ivan-kolmychek) +- Enh #3222: Added `useTablePrefix` option to the model generator for Gii (horizons2) - Enh: Added support for using sub-queries when building a DB query with `IN` condition (qiangxue) - Enh: Supported adding a new response formatter without the need to reconfigure existing formatters (qiangxue) - Enh: Added `yii\web\UrlManager::addRules()` to simplify adding new URL rules (qiangxue) -- libgit2 0.27.1