Yii2 Gii Table 前缀

Yii2 Gii Table Prefix

我总是设置 table 前缀 - 对于这个 post 假设我的前缀是 abc_。 所以在 common\config\main-local.php。我有:

'components' => [
'db' => [
    'class' => 'yii\db\Connection',
    'dsn' => 'mysql:host=localhost;dbname=database',
    'username' => 'user',
    'password' => 'pwd',
    'charset' => 'utf8',
    'tablePrefix' => 'abc_',
],
...

我在Yii1上工作过,用gii生成模型。 在此版本中,它生成的文件如下:table.php.

现在我使用 Yii2 并了解其中的差异: gii 生成类似 abc_table.php 的文件。是的 - 我检查了 "Use Table Prefix".

这不行,因为前缀应该是透明的。 谁能告诉我我做错了什么?

您可以将模型 class 名称 AbcTest 更改为 Test。对于未来的模型生成,请检查 Gii 工具中的 Use Table Prefix 字段。 Gii 像这样生成正确的模型:

class Test extends \yii\db\ActiveRecord
{
    /**
     * @inheritdoc
     */
    public static function tableName()
    {
        return '{{%test}}';
    }
    ...
}

tableName方法中,如果在Gii工具中勾选Use Table Prefix,则returns '{{%test}}'。如果不勾选Use Table Prefix,这个方法return'abc_test'和生成的模型class会被命名为AbcTest.