sql语句查询一级分类下的二级分类以此类推
01 防护设备
0101 面罩
010101 防护面具
01010101 活性炭
查出 01下的 子类 0101 就是以此类推这样 这个是一张表 一张表里只有这两个字段 这个应该怎么查呀 展开
封装一个类:
<?php
namespace App\Models\Admin;
use Illuminate\Database\Eloquent\Model;
class Sort extends Model
{
public $table = 'type';
//允许数据库批量操作
public $guarded = [];
/**
* 格式化数据
* @return 调用对象
*/
public function tree()
{
//获取所有的类
$sorts = Sort::get();
return $this->getTree($sorts,0);
}
/**
* @param [sorts] $[需要被格式化的数据]
* @param pid 当前分类的父类
*/
public function getTree($sorts,$pid =0)
{
//设置一个空数组
$arr = [];
//遍历出所有的父级分类
foreach ($sorts as $k => $v) {
//判断当前分类是否为顶级类
if($v['pid'] == $pid){
//将子类赋值到顶级类的下方
$v['path'] = $v['name'];
//将值存入一个数组中
$arr[] = $v;
//遍历出所有的二级类
foreach($sorts as $x => $y){
//判断
if($v['id'] == $y['pid']){
$y['path'] ='☆---'. $y['name'];
//将获得二级类存入到数组中
$arr[] = $y;
}
}
}
}
return $arr;
}
}
这个我用过了,但是后台数据取出来的时候子级分类对应不上上级分类
着中国情况,你最好价格字段 用父级ID区分