Yii表前缀无法读取具有该前缀的表

时间:2012-10-30 11:33:45

标签: php yii frameworks prefix

我开始在localhost中开发,使用yii 1.1.11使用auto generate app,create users table,使用gii生成crud。当我迁移到webhosting时,我必须为表使用前缀,因此成为“yii_users”并使用以下命令编辑配置:

'db'=>array(
  'connectionString' => 'xxxxx',
  'username' => 'xxxxx',
  'password' => 'xxxxx',
  'tablePrefix' => 'yii_',
),

但是我无法再登录并获得错误'无法在数据库中找到用于活动记录类“用户”的表“用户”。 '所以我假设tablePrefix不起作用。如何解决这个问题?

1 个答案:

答案 0 :(得分:7)

这要求您同时更改所有活动记录,check the guide

  

信息:要使用表前缀功能,可以覆盖AR类的tableName()方法...   ......   也就是说,我们不返回完全限定的表名,而是返回没有前缀的表名,并用双括号括起来

所以你需要这样做:

public function tableName() {
    return '{{user}}';
}

同样来自tablePrefix doc

  

通过设置此属性,“ {{tableName}} ”等任何标记都将替换为“prefixTableName”,其中“prefix”指的是此属性值。

(强调我的)