主页   文章   ThinkPHP5  

ThinkPHP无限分类模块设计

时间:2018-11-23 10:48

1.

控制器

public function catelist(){
        $cate=D('Cate');
        //var_dump($cate->gettree());exit;
        $cateres=$cate->gettree();
        $this->assign('cateres',$cateres);
       $this->display();
    }

模型gettree

//商品分类中查询的公共方法---无限分类
    public function gettree($p = 0,$lv = 0){
        $t = array();
     //循环打印数据表里面的数据,此时循环出来的是一个个一维数组
        foreach ($this->select() as $k => $v) {
       //检查此时的数据的parent_id是否=0
            if($v['parent_id'] == $p){
         //子栏目缩进
                $v['lv'] = $lv;
          //把数组赋值给$t
                $t[] = $v;
                //检查.合并array_merge
     $t = array_merge($t,$this->gettree($v['cate_id'],$lv+1)); } } return $t; }

2.

/**
 * 用于下拉列表,返回一个array,每一个层级前面递增一个-
 * 参与内测登录 http://www.5atl.com
 * @param  unknown 种子
 * @param  number 起始父id
 */
function selectTree($param, $pid = 0, $lvl = 0)
{
    static $res = [];
    foreach ($param as $key => $vo) {
        if ($pid == $vo['pid']) {
            $vo['position'] = str_repeat('▪', $lvl) . (1 + $lvl) . '岗 -' . $vo['position'];
            $res[] = $vo;
            $temp = $lvl + 1;
            
            selectTree($param, $vo['id'], $temp);
        }
    }
    return $res;
}

其他

字符串截取(简易版)

{$vo.content|urldecode|mb_substr=0,900,'utf-8'}


  评论





你还可以输入255

提交
返回顶部