2012-03-25 7 views
2

Ich habe ein Problem mit der loaded() Funktion des Kohana ORM. Ich lade einen Datensatz und der Datensatz ist definitiv geladen, da ich auf seine Eigenschaften zugreifen kann. Die Funktion loaded() gibt jedoch false zurück. Unten ist der Code Ich verwende:Kohana ORM meldet, dass Datensatz nicht geladen wird, wenn es geladen wird

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

Der folgende Code ausgeben würde, zum Beispiel:

NOT LOADED: 5435 

5435 die korrekte Benutzernummer ist, die zeigt, dass die Aufzeichnung in der Tat ist geladen. Weiß jemand, was dieses Problem verursachen könnte?

Antwort

2

Nach einigem Graben in Code Kohana Quelle, ich, dass die $loaded_ Eigenschaft herausfand, nicht gesetzt wurde, weil mein Modell uuid statt id als Primärschlüssel verwenden. Also habe ich es im Modell als protected $_primary_key = 'uuid' eingerichtet und jetzt funktioniert es.

Dies scheint jedoch ein Fehler in Kohana, weil der Primärschlüssel für diese Abfrage nicht relevant ist. Auch das Modell ist tatsächlich geladen, so dass es seltsam scheint, dass loaded()false zurückgibt.

0

Wie wäre 1.:

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