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