获取分类下面的所有子类方法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
static function getMenuTree( $arrCat , $parent_id = 0, $level = 0, $all =True)
{
static $arrTree ; //使用static代替global
if (! $all ) $arrTree = '' ;
if ( empty ( $arrCat )) return FALSE;
$level ++;
if ( $level == 1) $arrTree [] = $parent_id ;
foreach ( $arrCat as $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 ;
}
|
用上面这个方法的前提是要把分类写到缓存文件中,缓存文件写入方法如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
public function actionIndex2()
{
$arr = array ();
$db = Yii::app()->db;
$listinfo = $db ->createCommand( "select name,cid,parent_cid,root_cid from item_cat_info" )->queryAll();
foreach ( $listinfo as $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 );
}
|