mirror of
https://github.com/yiisoft/yii2.git
synced 2025-11-15 05:45:33 +08:00
Merge pull request #3222 from horizons2/patch-1
use tableprefix on gii model generator
This commit is contained in:
@@ -30,6 +30,7 @@ class Generator extends \yii\gii\Generator
|
||||
public $baseClass = 'yii\db\ActiveRecord';
|
||||
public $generateRelations = true;
|
||||
public $generateLabelsFromComments = false;
|
||||
public $useTablePrefix=false;
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
@@ -65,6 +66,7 @@ class Generator extends \yii\gii\Generator
|
||||
[['baseClass'], 'validateClass', 'params' => ['extends' => ActiveRecord::className()]],
|
||||
[['generateRelations', 'generateLabelsFromComments'], 'boolean'],
|
||||
[['enableI18N'], 'boolean'],
|
||||
[['useTablePrefix'], 'boolean'],
|
||||
[['messageCategory'], 'validateMessageCategory', 'skipOnEmpty' => false],
|
||||
]);
|
||||
}
|
||||
@@ -533,6 +535,26 @@ class Generator extends \yii\gii\Generator
|
||||
return $this->_tableNames = $tableNames;
|
||||
}
|
||||
|
||||
/**
|
||||
* 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
|
||||
*/
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates a class name from the specified table name.
|
||||
* @param string $tableName the table name (which may contain schema prefix)
|
||||
|
||||
@@ -39,7 +39,7 @@ class <?= $className ?> extends <?= '\\' . ltrim($generator->baseClass, '\\') .
|
||||
*/
|
||||
public static function tableName()
|
||||
{
|
||||
return '<?= $tableName ?>';
|
||||
return '<?= $generator->generateTablename($tableName) ?>';
|
||||
}
|
||||
<?php if ($generator->db !== 'db'): ?>
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@ echo $form->field($generator, 'modelClass');
|
||||
echo $form->field($generator, 'ns');
|
||||
echo $form->field($generator, 'baseClass');
|
||||
echo $form->field($generator, 'db');
|
||||
echo $form->field($generator, 'useTablePrefix')->checkbox();
|
||||
echo $form->field($generator, 'generateRelations')->checkbox();
|
||||
echo $form->field($generator, 'generateLabelsFromComments')->checkbox();
|
||||
echo $form->field($generator, 'enableI18N')->checkbox();
|
||||
|
||||
Reference in New Issue
Block a user