【问题标题】:Kohana ORM reports that record is not loaded when it is loadedKohana ORM 报告加载时记录未加载
【发布时间】:2012-04-09 03:33:16
【问题描述】:

我在使用 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 是正确的用户编号,这表明该记录实际上已加载。有谁知道是什么导致了这个问题?

【问题讨论】:

    标签: orm load kohana record kohana-3.2


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      第一个怎么样:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-06
        • 2015-04-16
        • 1970-01-01
        相关资源
        最近更新 更多