Yii Framework框架获取分类下面的所有子类方法
获取分类下面的所有子类方法:
staticfunctiongetMenuTree($arrCat,$parent_id=0,$level=0,$all=True) { static$arrTree;//使用static代替global if(!$all)$arrTree=''; if(empty($arrCat))returnFALSE; $level++; if($level==1)$arrTree[]=$parent_id; foreach($arrCatas$key=>$value) { if($value['parent_cid']==$parent_id) { //$value['level']=$level; $arrTree[]=$value['cid']; unset($arrCat[$key]);//注销当前节点数据,减少已无用的遍历 self::getMenuTree($arrCat,$value['cid'],$level); } } return$arrTree; }
用上面这个方法的前提是要把分类写到缓存文件中,缓存文件写入方法如下:
publicfunctionactionIndex2() { $filepath=Yii::getPathOfAlias('application').'/data/'; $arr=array(); $db=Yii::app()->db; $listinfo=$db->createCommand("selectname,cid,parent_cid,root_cidfromitem_cat_info")->queryAll(); foreach($listinfoas$val) { $arr[$val['cid']]=array('cid'=>$val['cid'],'name'=>$val['name'],'parent_cid'=>$val['parent_cid'],'root_cid'=>$val['root_cid']); } $applist="<?php\nreturn".var_export($arr,true).";\n?>"; file_put_contents($filepath.'itemcat.php',$applist); }