Kohana ORM报告加载时未加载记录

时间:2012-03-25 06:54:16

标签: orm load kohana record kohana-3.2

我遇到了Kohana ORM的loaded()功能问题。我正在加载一条记录,因为我可以访问其属性,所以记录肯定已加载。但是,loaded()函数返回false。以下是我正在使用的代码:

$sessionUuid = $this->request->query('session');        
$session = ORM::factory('session')->where('uuid', '=', $sessionUuid)->find();
if (!$session->loaded()) {
    echo "NOT LOADED: " . $session->user_id . "\n";
    return;
}

以下代码将输出例如:

NOT LOADED: 5435

5435是正确的用户号码,表示该记录实际已加载。有人知道可能导致这个问题的原因吗?

2 个答案:

答案 0 :(得分:2)

在深入研究Kohana源代码后,我发现未设置$loaded_属性,因为我的模型使用uuid而不是id作为主键。所以我在模型中将其设置为protected $_primary_key = 'uuid',现在它正在运行。

这似乎是Kohana中的一个错误,因为主键与此查询无关。此外,模型确实已加载,因此loaded()返回false似乎很奇怪。

答案 1 :(得分:0)

第一名:

echo Debug::vars($this->request->query('session'), $session);