第11课 文章分类(组件化开发) Thinkphp5商城第四季
[TOC]
思路:
- 控制器查出所有数据后调用扩展类里的无限级分类
public function catetree($cateRes)
方法.
把排序好的数据传给视图层. - 视图层用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>
效果:
[Haima的博客]
http://www.cnblogs.com/haima/
分类:
Thinkphp5
, Thinkphp5商城的学习(潼攀)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构