/**
* 缓存所有商品分类
* @return mixed
*/
static function findAllCache()
{
//开发期间不缓存,直接返回所有分类
return $goodsCate = self::select('*')->orderBy('pid', 'ASC')->orderBy('sort', 'ASC')->get()->toArray();
/* if(Cache::has('goods_cate')){
$goodsCate = Cache::get('goods_cate');
}else{
$goodsCate = self::select('*')->orderBy('pid', 'ASC')->orderBy('sort', 'ASC')->get()->toArray();
Cache::put('goods_cate',$goodsCate,1*24);
}
return $goodsCate;*/
}
/**
* 所有分类=>树形数组
* 将查询到的所有分类转换成树形返回
* @param array $cate 所有分类,可以使用findAllCache() 查询
* @param int $pid 初始父级
* @return mixed
*/
static function getTree(array $cate,$pid=0){
$result = array();
foreach($cate as $v){
if($v['pid'] == $pid){
$v['children'] =self::getTree($cate,$v['id']);
$result[] = $v;
}
}
return $result;
}
/**
* 一维数组=>树形带option数组
* 返回options递归信息
* @param array $data 全部分类
* @param int $pid
* @param int $level
* @return string
*/
static function getTreeOption($data,$pid = 0,$level=0){
$result = '';
$j=0;
foreach($data as $v){
if($v['pid'] == $pid){
$delimit='';
if($level){
for($i=1;$i<=$level;$i++){
$delimit .= ' ';
}
} else {
$delimit = '';
}
$result .= '<option value="'.$v['id'].'">'.$delimit.$v['title'].'</option>';
$result .= self::getTreeOption($data,$v['id'],$level+1);
}
}
return $result;
}
/**
* 所有分类=>顶级分类
* 将查询到的所有分类转换成顶级一维html option返回
* @param array $data 所有分类
* @param int $pid 初始父级
* @return mixed
*/
static function getParentHtml($data,$pid = 0,$level=0,$delimit = ''){
$result = array();
foreach($data as $v){
if($v['pid'] == $pid){
if($level){
for($i=1;$i<=$level;$i++){
$delimit .= ' ';
}
} else {
$delimit = '';
}
$result[] = '<option value="'.$v['id'].'">'.$delimit.$v['title'].'</option>';
$res = self::getTreeOption($data,$v['id'],$level+1);
if(is_array($res)){
foreach($res as $v2){
$result[] = $v2;
}
}
}
}
return $result;
}