0


我目前正在按照“使用 Yii 进行敏捷 Web 应用程序开发”一书的步骤进行操作,到目前为止,我设法在第 8 章完成了所有工作。但是现在,在我关闭并打开笔记本电脑后(升级了笔记本电脑的RAM),除了Active Record 找不到数据库表之外,一切似乎都正常工作,不仅在这个 web 应用程序中,而且还尝试了我拥有的旧功能和非常简单的演示,当模型类(扩展Yii 的 CActiveRecord 类)。

我在 Mac OS X Lion 10.7.3(2.4GHz Intel Core 2 Duo,8GB RAM MacBook Pro)上使用 XAMPP 和 MySQL 数据库(运行良好)。PHPUnit 在重新启动之前也可以正常工作。

我已经多次检查了 main.php 文件中的“db”组件,并且 - 我认为 - 一切都很好:

'db'=>array(
    'connectionString' => 'mysql:host=localhost;dbname=Customer',
    'emulatePrepare' => true,
    'username' => 'root',
    'password' => 'jasalo',
    'charset' => 'utf8',
),

还尝试添加

'tablePrefix' => 'tbl_'
这是本书在其 web 应用程序中使用的参数(尽管它从不建议使用 tablePrefix 这样做)。

另一方面,当我通过 Yii 执行一个简单的查询时,它确实有效(我在一个简单的视图上尝试了这个,关于):

var_dump(Yii::app()->db->createCommand('select * from tbl_user')->queryAll());

这是我得到的结果的一部分(这是正确的):

array(3) { [0]=> array(9) { ["id"]=> string(1) "1" ["email"]=> string(22) "test1@notanaddress.com" ["username"]=> string(13) "Test_User_One" ["password"]=> string(32) "5a105e8b9d40e1329780d62ea2265d8a"...

我什至尝试更改位于 webapp 的index.php文件中的 Yii 上的框架路径,我认为可能是另一个。有任何想法吗?

哦,这是我尝试使用 CActiveRecord 模型(类)时收到的错误消息:

CDb异常

在数据库中找不到活动记录类“用户”的表“tbl_user”。
4

2 回答 2

0

我遇到了同样的问题,在我的开发环境(MAMP)中,我的模型中有以下工作:

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

其中“Nantivdb”是我扩展 CActiveRecord 的类的名称,我查询的表是“nantiv0”。

一旦投入生产,我必须改变:

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

或者 yii 找不到表 'nantiv0'。

因此,我将在 /models/User.php 中进行以下更改:

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

很抱歉没有提供更多解释...

于 2012-04-26T13:38:15.507 回答
0

我发现这是一个权限问题。我刚刚通过 phpmyadmin 发现了这个问题,登录并尝试查看表的结构,它说它没有访问 /var/folders 的权限,所以我只是将其权限更改为 777(虽然有点不安全,但不是在我的情况下是一个问题,因为它位于单个用户环境中):

sudo chmod -R 777 /var/folders
于 2012-12-19T20:57:14.100 回答