刚刚接触PHP和Yii 框架不久,还不太清楚如何实现无限极分类,查阅相关资料发现资料都参差不齐,所以在自己做出了无限极分类之后想用总结一下自己的实现过程,达到简单易学的效果。
目前我通过两种方式实现了无限极分类:
第一种,数据库负担很大,不适用,PASS,简单提一下。
<span style="font-size:18px;">public function actionIndex()
{
$tree = $this->actionTree();
}</span>
利用递归,每次都用AR查询一次数据库,逐步生成树形数组
<span style="font-size:18px;">public function actionTree($id = 0)
{
$arr = array();
$child = Cate::model()->cateTree($id);//每次都查询一次数据库
// var_dump($child);
if(!empty($child)){
foreach ($child as $k => &$v) {
$v['child'] = $this->actionTree($v['id']);
$arr[] = $v;
}
}
return $arr;
}</span>
cateTree模型:
<span style="font-size:18px;">public function cateTree($pid)
{
$cateTree = new Cate;
$tree = $cateTree->findAll('pid=:pid', array(':pid'=>$pid));
foreach ($tree as $key => $value) {
$tree[$ke