Yii - 手动设置模型的表名

时间:2014-08-10 10:58:05

标签: php mysql yii

我在Yii写了我自己的小管理脚本。在localhost上制作和测试,工作正常。

现在,当我将文件传输到托管环境时,我收到的错误如下:

'The table `News` for active record class `News` cannot be found in the database.'

碰巧,因为Yii正在寻找'新闻'表,而在数据库中只有一个较低的news表。

我认为MySQL中有一些设置可以使我的数据库表区分大小写。无论如何,我无法更改这些设置,因为我没有服务器。

Yii从类名继承表名,有没有办法改变它?就像为一些变量分配一些新的表名?无法找到解决方案。

由于

2 个答案:

答案 0 :(得分:2)

你的表名都应该是小写的,因为如上所述,Unix和Windows的行为不同。 但是你的所有模型tableName()都有一种方法。您可以在此处指定模型应使用的表名称:

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

答案 1 :(得分:1)

您应该将表名保持为小写。因为在Windows中,表的区分大小写永远不会改变。一旦你将脚本放在Linux中,它就会将所有内容改为小写。每个主机都可能是Linux服务器......所以请记住它。