目录

思路:

  1. 控制器查出所有数据后调用扩展类里的无限级分类 public function catetree($cateRes) 方法.

    把排序好的数据传给视图层.
  2. 视图层用str_repeat()做好层级显示

控制器里

<?php
namespace app\admin\controller; use catetree\Catetree; //引入扩展类
use think\Controller; class Cate extends Controller
{
public function lst()
{
$cate = new Catetree(); //实例化引入的Catetree类
$cateObj = db('cate');
$cateRes = $cateObj->order('sort DESC')->select(); //查所有数据
$cateRes = $cate->catetree($cateRes); //调用无限级分类
$this->assign([
'cateRes' => $cateRes, //传到视图层
]);
return view('list');
}

扩展类里:

D:\xampp\htdocs\shop\extend\catetree\Catetree.php

<?php
namespace catetree; use think\Validate; class Catetree
{ public function catetree($cateRes)
{
return $this->sort($cateRes);
} public function sort($cateRes, $pid = 0, $level = 0)
{ static $arr = array();
foreach ($cateRes as $k => $v) {
if ($v['pid'] == $pid) {
$v['level'] = $level;
$arr[] = $v;
$this->sort($cateRes, $v['id'], $level + 1);
}
} return $arr;
}

视图层:

<td><?php echo str_repeat('-', $cate['level']*8)?>{$cate.cate_name}</td>

效果:

第11课 文章分类(组件化开发) Thinkphp5商城第四季的更多相关文章

  1. 从徐飞的文章《Web应用的组件化开发(一)中窥视web应用开发的历史

    Web应用的组件化开发(一) 原文来自 徐飞 基本思路 1. 为什么要做组件化? 无论前端也好,后端也好,都是整个软件体系的一部分.软件产品也是产品,它的研发过程也必然是有其目的.绝大多数软件产品是追 ...

  2. iOS组件化开发· 什么是组件化

    越来越多公司,开始了组件化,你还要等到什么时候...... 说到开发模式,我们最熟知的开发模式 MVC 或者最近比较热门的MVVM.但是我今天说的组件化的开发,其实MVC不是一类的.它其实是····· ...

  3. iOS组件化开发入门 —— 提交自己的私有库

    前言:本人也是初次接触组件化开发,感觉现有的资料太繁杂,就简单整理了一下,在此跟大家分享一些入手的经验,主要就是描述cocoapods的私有库封装和提交.组件化开发是个大的议题,涉及到架构思路.设计模 ...

  4. ReactNative新手学习之路04 组件化开发轮播图swiper支持安卓和IOS

    react native 新手之路04 组件化开发轮播图swiper支持安卓和IOS npm install react-native-carousel --save git 地址Properties ...

  5. Webpack+Vue+ES6 前端组件化开发mobile-multi-page应用实战总结

    本文版权归博客园和作者吴双本人共同所有 转载和爬虫请注明原文地址 www.cnblogs.com/tdws 一.写在前面 项目上线有一段时间了,一个基于webpack+vue+ES6的手机端多页面应用 ...

  6. 前端笔记之JavaScript面向对象(四)组件化开发&轮播图|俄罗斯方块实战

    一.组件化开发 1.1组件化概述 页面特效的制作,特别需要HTML.CSS有固定的布局,所以说现在越来越流行组件开发的模式,就是用JS写一个类,当你实例化这个类的时候,页面上的效果布局也能自动完成. ...

  7. vue(9)—— 组件化开发 - webpack(3)

    前面两个终于把webpack相关配置解析完了.现在终于进入vue的开发了 vue组件化开发预热 前期准备 创建如下项目: app.js: footer.js: main.js: webpack.con ...

  8. Webpack+Vue+ES6 前端组件化开发mobile-multi-page应用实战总结和踩坑

    本文版权归博客园和作者吴双本人共同所有 转载和爬虫请注明原文地址 www.cnblogs.com/tdws 一.写在前面 项目上线有一段时间了,一个基于webpack+vue+ES6的手机端多页面应用 ...

  9. Vue 入门之组件化开发

    Vue 入门之组件化开发 组件其实就是一个拥有样式.动画.js 逻辑.HTML 结构的综合块.前端组件化确实让大的前端团队更高效的开发前端项目.而作为前端比较流行的框架之一,Vue 的组件和也做的非常 ...

随机推荐

  1. asp.net mvc里面竟然也可以用eval()

    刚才在项目里面看到了一个牛逼的用法: style="display:<%# Eval("IsSharingPlatformDisplay") %>" ...

  2. [PHP]使用日志进行调试

    两种方法: 1.利用自定义函数: //写日志,打印字符串function writelog($str){ $open=fopen("log.txt","a+") ...

  3. mysql连接error,Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection .....

    完整error Establishing SSL connection without server's identity verification is not recommended. Accor ...

  4. Quartz.NET实现作业调度(3.0版本实现)定时执行一个任务

    2.0版本请参考https://www.cnblogs.com/best/p/7658573.html这里的文章很详细: 我们现在想每5秒钟往txt文件夹里存储一个时间 首先:定义一个类,实现Quar ...

  5. 如何远程连接非默认端口SQL Server

    SQL Server Management Studio建立远程SQL连接  连接的时候写: 127.0.0.1,49685\sqlexpress 记得使用逗号,不是冒号

  6. Cucumber 场景大纲 Scenario Outlines

    引用链接:https://github.com/cucumber/cucumber/wiki/Scenario-Outlines script/cucumber --i18n zh-CN | feat ...

  7. wepy-cli 开发小程序如何使用vant组件

    同样使用wepy-cli快速生成的小程序,目前可以使用组件: 直接通过 git 下载 Vant Weapp 源代码,并将dist目录拷贝到自己的项目中 git clone https://github ...

  8. java关于类的构建

    一开始老是把类的构建和代码的重构搞的混淆,现在理解的可能还好点(至少概念上不会出错了),简单的说类就是一个复杂的变量,这个变量里面含有属性.方法和构造方法,注意方法和构造方法是完全不同的两个概念,而且 ...

  9. easyUI 实现异步tree

    html: <ul id="relInfoTree" class="easyui-tree"></ul> js: $(document) ...

  10. 从零开始的全栈工程师——js篇2.2

    条件语句 补充: var a=“hello world” a这个变量是字符串了 对于里面每一个字母来说 他是字节 里面有11个字节 字节总数用length表示 如下: 根据上面的内容咱们又发现了一个运 ...