php分类树形排序sql,Laravel入门之实现菜单的树形分类

友情提示:此篇文章大约需要阅读 3分钟41秒,不足之处请多指教,感谢你的阅读。

实现菜单的树形分类主要是有两个比较重要的点,上图我们可以看到分类是三级分类,实现了对菜单的限制,其中主要是有以下几个点需要注意,之后就乘上热乎乎的代码:

SQL语句的拼接撰写,形成原始数据;

前台渲染根据path路径字符串判断需要加几处分段符;

判断三层菜单,并禁止三层菜单继续向下分级。

路由设置

后端读取处理方法

/**

* 菜单控制首页

* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View

*/

public function index(){

// 求取行数

$count = DB::table('dzushop_types')->count();

// 查询树形结构并且运用concat函数生成新字段进行排序

$data = DB::table('dzushop_types')

->select(DB::raw('dzushop_types.*, concat(path,id) p'))

->orderBy("p","asc")

->paginate(10);

return view("admin.types.index")

->with('data', $data)

->with('count', $count);

}

其核心语句就是查询构造器对表的查询拼接及排序:

DB::table('dzushop_types')

->select(DB::raw('dzushop_types.*, concat(path,id) p'))

->orderBy("p","asc")

->paginate(10);

前台渲染判断语句

$arr = explode(',', $value->path);

$tot = count($arr)-2;

?>

{{ str_repeat('|-----',$tot) }}{{ $value->name }}

三级分类约束语句

@if($tot >= 2)

添加子类

@else

添加子类

@endif

最终效果图:

7793682f40a366d05f1b26e8f33b1d37.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值