From 9c5ba231a19e48e395a75b50076408acfb8e7699 Mon Sep 17 00:00:00 2001 From: Gudz Taras Date: Fri, 25 Oct 2013 01:48:32 +0400 Subject: [PATCH 1/2] Fixes issue #1063: Fatal Error while getting value from ActiveRelation generated by Gii --- framework/yii/gii/generators/model/Generator.php | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/framework/yii/gii/generators/model/Generator.php b/framework/yii/gii/generators/model/Generator.php index de9cc2f..9e8ac7d 100644 --- a/framework/yii/gii/generators/model/Generator.php +++ b/framework/yii/gii/generators/model/Generator.php @@ -265,8 +265,8 @@ class Generator extends \yii\gii\Generator $link = $this->generateRelationLink(array_flip($refs)); $relationName = $this->generateRelationName($relations, $className, $table, $fks[0], false); $relations[$className][$relationName] = [ - "return \$this->hasOne('$refClassName', $link);", - $refClassName, + "return \$this->hasOne('$this->ns\\$refClassName', $link);", + $this->ns . '\\' . $refClassName, false, ]; @@ -281,8 +281,8 @@ class Generator extends \yii\gii\Generator $link = $this->generateRelationLink($refs); $relationName = $this->generateRelationName($relations, $refClassName, $refTable, $className, $hasMany); $relations[$refClassName][$relationName] = [ - "return \$this->" . ($hasMany ? 'hasMany' : 'hasOne') . "('$className', $link);", - $className, + "return \$this->" . ($hasMany ? 'hasMany' : 'hasOne') . "('$this->ns\\$className', $link);", + $this->ns . '\\' . $className, $hasMany, ]; } @@ -299,8 +299,8 @@ 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', $link)->viaTable('{$table->name}', $viaLink);", - $className0, + "return \$this->hasMany('$this->ns\\$className1', $link)->viaTable('{$table->name}', $viaLink);", + $this->ns . '\\' . $className0, true, ]; @@ -308,8 +308,8 @@ 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', $link)->viaTable('{$table->name}', $viaLink);", - $className1, + "return \$this->hasMany('$this->ns\\$className0', $link)->viaTable('{$table->name}', $viaLink);", + $this->ns . '\\' . $className1, true, ]; } From 5b1ba04a9d9a8c1b4ff8f0d8e837f3ceb986048a Mon Sep 17 00:00:00 2001 From: Gudz Taras Date: Fri, 25 Oct 2013 04:10:26 +0400 Subject: [PATCH 2/2] Fixes #1063 --- framework/yii/gii/generators/model/Generator.php | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/framework/yii/gii/generators/model/Generator.php b/framework/yii/gii/generators/model/Generator.php index 9e8ac7d..bd42fab 100644 --- a/framework/yii/gii/generators/model/Generator.php +++ b/framework/yii/gii/generators/model/Generator.php @@ -265,8 +265,8 @@ class Generator extends \yii\gii\Generator $link = $this->generateRelationLink(array_flip($refs)); $relationName = $this->generateRelationName($relations, $className, $table, $fks[0], false); $relations[$className][$relationName] = [ - "return \$this->hasOne('$this->ns\\$refClassName', $link);", - $this->ns . '\\' . $refClassName, + "return \$this->hasOne($refClassName::className(), $link);", + $refClassName, false, ]; @@ -281,8 +281,8 @@ class Generator extends \yii\gii\Generator $link = $this->generateRelationLink($refs); $relationName = $this->generateRelationName($relations, $refClassName, $refTable, $className, $hasMany); $relations[$refClassName][$relationName] = [ - "return \$this->" . ($hasMany ? 'hasMany' : 'hasOne') . "('$this->ns\\$className', $link);", - $this->ns . '\\' . $className, + "return \$this->" . ($hasMany ? 'hasMany' : 'hasOne') . "($refClassName::className(), $link);", + $className, $hasMany, ]; } @@ -299,8 +299,8 @@ 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('$this->ns\\$className1', $link)->viaTable('{$table->name}', $viaLink);", - $this->ns . '\\' . $className0, + "return \$this->hasMany($className1::className(), $link)->viaTable('{$table->name}', $viaLink);", + $className0, true, ]; @@ -308,8 +308,8 @@ 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('$this->ns\\$className0', $link)->viaTable('{$table->name}', $viaLink);", - $this->ns . '\\' . $className1, + "return \$this->hasMany($className0::className(), $link)->viaTable('{$table->name}', $viaLink);", + $className1, true, ]; }