From 3847630994a068d89a293ae5498bc98e7fc54e20 Mon Sep 17 00:00:00 2001
From: Stephen Seliuk <stephen@seliuk.com>
Date: Wed, 10 Sep 2014 13:10:19 +0300
Subject: [PATCH] Fixes #4971: Fixed hardcoded table names in `viaTable` expression in model generator

---
 extensions/gii/CHANGELOG.md                       | 1 +
 extensions/gii/generators/model/Generator.php     | 4 ++--
 extensions/gii/generators/model/default/model.php | 2 +-
 3 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/extensions/gii/CHANGELOG.md b/extensions/gii/CHANGELOG.md
index e70314b..e7f062b 100644
--- a/extensions/gii/CHANGELOG.md
+++ b/extensions/gii/CHANGELOG.md
@@ -9,6 +9,7 @@ Yii Framework 2 gii extension Change Log
 - Bug #3265: Fixed incorrect controller class name validation (suralc)
 - Bug #3693: Fixed broken Gii preview when a file is unchanged (cebe)
 - Bug #4410: Fixed Gii to preserve database column order in generated _form.php  (kmindi)
+- Bug #4971: Fixed hardcoded table names in `viaTable` expression in model generator (stepanselyuk)
 - Enh #2018: Search model is not required anymore in CRUD generator (johonunu)
 - 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)
diff --git a/extensions/gii/generators/model/Generator.php b/extensions/gii/generators/model/Generator.php
index 8a29795..ffbac25 100644
--- a/extensions/gii/generators/model/Generator.php
+++ b/extensions/gii/generators/model/Generator.php
@@ -354,7 +354,7 @@ class Generator extends \yii\gii\Generator
             $viaLink = $this->generateRelationLink([$table->primaryKey[0] => $fks[$table->primaryKey[0]][1]]);
             $relationName = $this->generateRelationName($relations, $className0, $db->getTableSchema($table0), $table->primaryKey[1], true);
             $relations[$className0][$relationName] = [
-                "return \$this->hasMany($className1::className(), $link)->viaTable('{$table->name}', $viaLink);",
+                "return \$this->hasMany($className1::className(), $link)->viaTable('{" . $this->generateTableName($table->name) . "}', $viaLink);",
                 $className1,
                 true,
             ];
@@ -363,7 +363,7 @@ class Generator extends \yii\gii\Generator
             $viaLink = $this->generateRelationLink([$table->primaryKey[1] => $fks[$table->primaryKey[1]][1]]);
             $relationName = $this->generateRelationName($relations, $className1, $db->getTableSchema($table1), $table->primaryKey[0], true);
             $relations[$className1][$relationName] = [
-                "return \$this->hasMany($className0::className(), $link)->viaTable('{$table->name}', $viaLink);",
+                "return \$this->hasMany($className0::className(), $link)->viaTable('{" . $this->generateTableName($table->name) . "}', $viaLink);",
                 $className0,
                 true,
             ];
diff --git a/extensions/gii/generators/model/default/model.php b/extensions/gii/generators/model/default/model.php
index 67d9e8a..cd5a2fc 100644
--- a/extensions/gii/generators/model/default/model.php
+++ b/extensions/gii/generators/model/default/model.php
@@ -20,7 +20,7 @@ namespace <?= $generator->ns ?>;
 use Yii;
 
 /**
- * This is the model class for table "<?= $tableName ?>".
+ * This is the model class for table "<?= $generator->generateTableName($tableName) ?>".
  *
 <?php foreach ($tableSchema->columns as $column): ?>
  * @property <?= "{$column->phpType} \${$column->name}\n" ?>
--
libgit2 0.27.1