Kohana ORM reports that record is not loaded when it is loaded
-
26-05-2021 - |
Question
I'm having a problem with the loaded()
function of the Kohana ORM. I'm loading a record, and the record is definitely loaded since I can access its properties. However, the loaded()
function returns false
. Below is the code I'm using:
$sessionUuid = $this->request->query('session');
$session = ORM::factory('session')->where('uuid', '=', $sessionUuid)->find();
if (!$session->loaded()) {
echo "NOT LOADED: " . $session->user_id . "\n";
return;
}
The code below would output for example:
NOT LOADED: 5435
5435 being the correct user number, which shows that the record is in fact loaded. Does anybody know what could be causing this issue?
Solution
After some digging into Kohana source code, I found out that the $loaded_
property was not set because my model use uuid
instead id
as a primary key. So I set it up in the model as protected $_primary_key = 'uuid'
and now it's working.
This seems like a bug in Kohana though because the primary key is not relevant for this query. Also the model is indeed loaded so it seems odd that loaded()
returns false
.
OTHER TIPS
How about 1st:
echo Debug::vars($this->request->query('session'), $session);