Kohana ORM сообщает, что запись не загружается при загрузке - PullRequest
2 голосов
/ 25 марта 2012

У меня проблема с функцией loaded() в Kohana ORM.Я загружаю запись, и запись определенно загружена, так как я могу получить доступ к ее свойствам.Однако функция 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 ]

2 голосов
/ 02 апреля 2012

После некоторого изучения исходного кода Kohana я обнаружил, что свойство $loaded_ не было установлено, потому что моя модель использует uuid вместо id в качестве первичного ключа.Поэтому я настроил его в модели как protected $_primary_key = 'uuid', и теперь он работает.

Это похоже на ошибку в Kohana, потому что первичный ключ не имеет отношения к этому запросу.Также модель действительно загружена, поэтому кажется странным, что loaded() возвращает false.

0 голосов
/ 26 марта 2012

Как насчет 1-го:

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