2013-05-06 105 views
0

如何找到一個記錄的所有祖先(不僅直接父)以下模型:的Kohana 3.3 ORM - 如何找到在樹中的所有祖先(自引用表)

class Model_Category extends ORM { 

protected $_belongs_to = array(
     'parent' => array('model' => 'Category', 'foreign_key' => 'category_id'), 
); 

protected $_has_many = array(
     'children' => array('model' => 'Category', 'foreign_key' => 'category_id'), 
); 

$類別 - > parent-> find()只是給直接父對象,甚至當試圖用遞歸函數獲取父對象的父對象時,它會拋出Kohana_Exception:方法find()不能在加載的對象上調用。

這對我來說很自然,我想有一個簡單的方法來做到這一點 - 我不確定這是我還是缺乏關於ORM關係的文檔 - halp!

回答

0

好了,原來的相關模型實際上都包括在內,因爲如果你做

$分類 - >父 - >父 - >命名爲$類的盛大母公司的名稱。

我的問題是,我正在打印$ category-> parent-> as_array(),並期望看到(多維)數組中的父關係,這看起來不像kohana的情況。

1

你應該能夠用遞歸函數或while循環

$current = $category; 
while ($current->parent->loaded()) 
{ 
    //save $current 
    $current = $category->parent; 
} 
相關問題