我在使用 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 是正确的用户编号,这表明该记录实际上已加载。有人知道是什么原因导致这个问题吗?
最佳答案
深入研究 Kohana 源代码后,我发现 $loaded_
属性未设置,因为我的模型使用 uuid
而不是 id
作为主键。因此,我在模型中将其设置为 protected $_primary_key = 'uuid'
,现在它可以正常工作了。
这似乎是 Kohana 中的一个错误,因为主键与此查询无关。此外,模型确实已加载,因此 loaded()
返回 false
似乎很奇怪。
关于orm - Kohana ORM加载时报告记录未加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9858429/