2012-07-09 63 views
2

我有一點試圖找出最好的方式來檢查,如果一個特定的結果中包含任何記錄下面的代碼麻煩單個記錄的存在:Kohana的ORM 3.2檢查

$record = ORM::factory('my_table', $id); 

什麼我通常會做的是使用計數器方法,如$ record-> count()或$ records-> exist()方法,只要返回true或false,如果發現任何內容。但是沒有爲ORM實現這樣的事情。

我知道kohana ORMs實現了SPL可數接口,因此我可以使用php count()函數,但是這在預期只有一個記錄時沒有用,因爲count()將返回1,表示任何不包含數據的模型例如,如果找不到id。

這是我周圍得到的方式:如果我的表不包含ID字段,或者如果表允許什麼

try { 
$record = ORM::factory('my_table', $id); 

if($record->id === NULL) { 
    throw new Exception('The id: ' . $id . ' was not found, use a valid ID'); 
} 

}

這個特殊的解決方案是不是很好, ID爲空?

必須有更好的方法來檢查模型是否包含任何數據。

任何想法?

回答

3
try 
{ 
    $record = ORM::factory('my_table', $id); 

    if (! $record->loaded()) 
    { 
     throw new Exception('The id: ' . $id . ' was not found, use a valid ID'); 
    } 
} 

http://kohanaframework.org/3.2/guide/api/ORM#loaded

+0

可悲的是,這種方法目前不只要它做什麼...謝謝你記錄! – Onema 2012-07-10 23:15:45

+3

Kohana缺乏文檔是其最大的缺陷。誰在關心該方法的源代碼,只是給我們一個體面的功能描述,並向我們展示瞭如何使用它的一個例子。如果我已經沒有進入我的項目,我會改變框架。 – Gavin 2013-08-20 14:28:03

3
$record = ORM::factory('my_table', $id); 

if ($record->loaded()) 
{ 
    // Load was successful 
} 
else 
{ 
    // Error 
}