2

我开始在 localhost 中开发,使用 yii 1.1.11 使用自动生成应用程序,创建用户表,使用 gii 生成 crud。当我迁移到虚拟主机时,我必须为表使用前缀,因此变成“yii_users”并用这个编辑配置:

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

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

4

1 回答 1

7

这还需要您更改所有活动记录,请查看指南

信息:要使用表前缀功能,AR 类的 tableName() 方法可能会被覆盖……也就是说,我们不返回完全限定的表名,而是返回不带前缀的表名并将其括在双花括号中

所以你需要这样做:

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

也来自tablePrefix文档

通过设置这个属性,任何像“ {{tableName}} ”这样的标记都将被“prefixTableName”替换,其中“prefix”指的是这个属性值。

(强调我的)

于 2012-10-30T11:51:50.887 回答