欢迎光临
感谢一路有你

无级分类Demo

如果你对该文章中的内容有疑问/不解,可以点击此处链接提问
要注明问题和此文章链接地址 点击此处跳转
 

id pid

controller

/**
     * 加载视图
     * @return [type] [description]
     */
    public function goods_group()
    {    
        // 从数据库获取所有分类记录
      $goods_group = \App\Goods_group::orderBy('sort','desc')->get();
        // 将分类以及子分类整理排序
      $goods_group = $this->_treeNode($goods_group->toArray(),0);
        // 加载视图及分配数据
      return view("admin/goods/goods_group",compact('goods_group'));      
    }

    /**
     * 整理排序所有分类
     * @param  array   $data       从数据库获取的分类
     * @param  integer $parentId 父id,默认一级分类
     * @return array 
     */
    private function _treeNode($data,$parentId = 0)
    {
        // 用于保存整理好的分类节点
        $node = [];
        // 循环所有分类
        foreach ($data as $key => $value) {
            // 如果当前分类的父id等于要寻找的父id则写入$node数组,并寻找当前分类id下的所有子分类
            if($parentId == $value ['pid']) {
                $node [$key] = $value;
                $node [$key] ['childer'] = $this->_treeNode($data,$value ['id']);
            }
        }
        return $node;
    } 

 

view

        @foreach($goods_group as $k=>$vo)
              <tr>
                <td>{{$vo['id']}}</td>
                <td>{{$vo['pid']}}</td>
                <td>{{$vo['name']}}</td>
                <td>子类</td>
                <td><image src="{{$vo['banner']}}" /></td>
                <td>{{$vo['sort']}}</td>
                <td>{{$vo['status']}}</td>
                <td> <button class="layui-btn  layui-btn-danger layui-btn-sm" href="#">属性</button> <button class="layui-btn layui-btn-sm" onclick='mcAdminShow("编辑","http://www.baidu.com")'>编辑</button><button class="layui-btn layui-btn-sm" >删除</button></td>
              </tr>
              @if(!empty($vo['childer']))
                {{get_childer_node($vo['childer'])}}
              @endif
            @endforeach

function

/**
 * 产品分类获取子节点
 * @param  array  $data [description]
 * @return [type]       [description]
 */
function get_childer_node($data = [])
{
    // 记录该分类的深度
    static $callNum = 1;
    $fg = str_repeat('|----',$callNum); 
    if(empty($data)) {
        return;        
    }
    foreach ($data as $key => $vo) {
        
        echo "
                <tr>
                    <td>{$vo['id']}</td>
                    <td>{$vo['pid']}</td>
                    <td>{$fg}{$vo['name']}</td>
                    <td>子类</td>
                    <td><image src='{$vo["banner"]}' /></td>
                    <td>{$vo['sort']}</td>
                    <td>{$vo['status']}</td>
                    <td> <button class='layui-btn  layui-btn-danger layui-btn-sm' href='#'>属性</button> <button class='layui-btn layui-btn-sm' onclick='mcAdminShow('编辑','http://www.baidu.com')'>编辑</button><button class='layui-btn layui-btn-sm' >删除</button></td>
                </tr>
            ";
        // 如果该分类的依旧有子分类则再次遍历输出 
        if(!empty($vo ['childer'])) {
            $callNum ++;
            get_childer_node($vo ['childer']);
        }
        // 重置分类层级
        $callNum = 1;
    }
}

 

 

 

 

赞(0) 打赏
未经允许不得转载:王明昌博客 » 无级分类Demo
分享到: 更多 (0)

相关推荐

  • 暂无文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

×
订阅图标按钮