在Yii框架下用遞迴方式簡單實現無限極分類

2021-07-05 07:34:50 字數 1948 閱讀 7116

剛剛接觸php和yii 框架不久,還不太清楚如何實現無限極分類,查閱相關資料發現資料都參差不齊,所以在自己做出了無限極分類之後想用總結一下自己的實現過程,達到簡單易學的效果。

目前我通過兩種方式實現了無限極分類:

public function actionindex()

利用遞迴,每次都用ar查詢一次資料庫,逐步生成樹形陣列

public function actiontree($id = 0)

}return $arr;

}

catetree模型:

public function catetree($pid)

return $tree;

}

由於以上方式每次都會查詢一次資料庫,在資料龐大的情況下會有較大延遲,所以pass掉。

public function catefind()//模型

return $cateinfo;

}

生成的陣列$cateinfo是這樣子的:

用遞迴的方法生成樹形陣列

public function actioncate(&$info, $child, $pid = 0)}}

return $child;//返回生成的樹形陣列

}

輸出的樹形陣列為下(顯示部分):

[2] => array([id] => 14

[pid] => 1

[name] => 酒水

[child] => array([0] => array([id] => 20

[pid] => 14

[name] => 白酒

[child] => array([0] => array([id] => 29

[pid] => 20

[name] => 茅台

[child] => array())

[1] => array([id] => 30

[pid] => 20

[name] => 劍南春

[child] => array())))[3] => array([id] => 15

[pid] => 1

[name] => 麵包

[child] => array([0] => array([id] => 16

[pid] => 15

[name] => 白麵包

[child] => array())

同樣使用遞迴的方法將html**拼裝成字串,在前台輸出 

public function actionul($child, &$ul)

}// var_dump($ul);

return $ul;

}

在前台echo之後輸出:

雖然html**的有點錯誤,但是好歹還是輸出了預期的效果!

在Django框架下,用redis實現購物車功能

先介紹一下本文中需要用到的資料庫模型類 goodssku,這個主要用於儲存商品,在這個模型類裡有price屬性 name屬性等。最終我們要實現的頁面效果是 購買商品頁面 購物車詳情頁面 總的思路是,因為購物車屬於頻繁被操作的物件,所以我們與之儲存在資料庫裡,不如儲存在記憶體裡。所以我們選擇redis...

在iframe框架下實現全域性彈框

公司使用的是iframe的框架來寫的後台,即包含top,left,right,bottom,想要實現有訊息時出現彈框,該彈框在所有的頁面內都可以顯示,現有實現方式如下 原先的布局為在index頁面設定的iframe等引數 很抱歉,您使用的瀏覽器不支援框架功能,請轉用新的瀏覽器。現在為了實現彈出框在全...

easyui框架 使用遞迴實現簡單的選單樹

首先,我們先來看看效果吧!今天我們就詳細的講解一下這個選單樹是怎麼實現的。資料庫 單純的實現這棵樹,資料庫只需要一張選單表 menu 即可。我們需要使用遞迴來對每個節點以及節點下的內容進行遍歷。所以我們需要乙個treemodel 包含當前節點需要的內容以及該節點的子節點列表 來對這些內容進行封裝。注...