2012-10-23 40 views
0

我跟隨book的文檔來使用樹行爲。CakePhp 2樹行爲的generateTreeList()返回平面列表

一切看起來都很好。 PARENT_ID,LFT和rght正確保存,但 當我打電話:

$this->Model->generateTreeList() 

返回的列表是平的,即:

array(
    (int) 8 => 'p1', 
    (int) 11 => 'child of p1', 
    (int) 9 => 'p2', 
    (int) 2 => 'child of p2', 
) 

還有什麼我需要知道的?

回答

1

它按預期工作(根據文檔)。 generateTreeList返回array,其中key是id,diplay字段是值。 generateTreeList($conditions=null, $keyPath=null, $valuePath=null, $spacer= '_', $recursive=null) 可以指定$spacer參數,並導致像i.ex:

array(
    1 => 'p1', 
    2 => '_p2', 
    3 => '_p3', 
    4 => '_p4', 
    5 => '__p5', 
); 

這份名單是「平」的,但與間隔。如果你想有層次嵌套數組,你必須使用:$this->Model->find('threaded')

+0

你不需要編寫遞歸函數,只需使用'find('threaded')'。 – ADmad

+0

不,我已經使用過您提供的方法調用,但下劃線仍然沒有添加。 '螺紋'在這種情況下不是我所需要的,我需要節點的深度,是否提供了螺紋?我認爲它給了我一個深度爲1(?)的列表 – Sam