分类数据表
CREATE TABLE `category` (
`cat_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
`cat_name` varchar(90) NOT NULL DEFAULT '',
`keywords` varchar(255) NOT NULL DEFAULT '',
`cat_desc` varchar(255) NOT NULL DEFAULT '',
`parent_id` smallint(5) unsigned NOT NULL DEFAULT '0',
`sort_order` smallint(8) unsigned NOT NULL DEFAULT '50',
`template_file` varchar(50) NOT NULL DEFAULT '',
`measure_unit` varchar(15) NOT NULL DEFAULT '',
`show_in_nav` tinyint(1) NOT NULL DEFAULT '0',
`style` varchar(150) NOT NULL,
`is_show` tinyint(1) unsigned NOT NULL DEFAULT '1',
`grade` tinyint(4) NOT NULL DEFAULT '0',
`filter_attr` varchar(255) NOT NULL DEFAULT '0',
`is_top_style` tinyint(3) unsigned NOT NULL DEFAULT '0',
`top_style_tpl` varchar(255) NOT NULL,
`style_icon` varchar(50) NOT NULL DEFAULT 'other',
`cat_icon` varchar(255) NOT NULL,
`is_top_show` tinyint(3) unsigned NOT NULL DEFAULT '0',
`category_links` text NOT NULL,
`category_topic` text NOT NULL,
`pinyin_keyword` text NOT NULL,
`cat_alias_name` varchar(90) NOT NULL,
`commission_rate` smallint(5) unsigned NOT NULL DEFAULT '0',
`touch_icon` varchar(255) NOT NULL,
`cate_title` varchar(200) NOT NULL DEFAULT '' COMMENT '关键词',
`cate_keywords` varchar(255) NOT NULL DEFAULT '' COMMENT '关键词',
`cate_description` varchar(255) NOT NULL DEFAULT '' COMMENT '描述',
PRIMARY KEY (`cat_id`),
KEY `parent_id` (`parent_id`),
KEY `is_show` (`is_show`),
KEY `cat_name` (`cat_name`),
KEY `show_in_nav` (`show_in_nav`),
KEY `grade` (`grade`),
KEY `is_top_style` (`is_top_style`),
KEY `top_style_tpl` (`top_style_tpl`),
KEY `is_top_show` (`is_top_show`)
) ENGINE=MyISAM AUTO_INCREMENT=1546 DEFAULT CHARSET=utf8;
以thinkphp6 为例
分类模型
<?php
namespace app\model;
use app\model\Base as Model;
class Category extends Model
{
protected $table = 'category';
protected $pk = 'cate_id';
public function hasManyCategory()
{
return $this->hasMany(\app\model\Category::class, 'parent_id', 'cat_id');
}
public function category()
{
return $this->hasManyCategory();
}
public function hasOneGoods()
{
return $this->hasOne(\app\model\Goods::class, 'cat_id', 'cat_id');
}
public function joinGoods()
{
return $this->hasOneGoods()->where(['is_on_sale' => 1, 'is_delete' => 0]);
}
}
分类控制器
public function index(Request $request)
{
$params = $request->only(['pid']);
$pid = !empty($params['pid']) ? $params['pid'] : 0;
$data = CategoryModel::field([
'cat_id',
'cat_name',
'parent_id',
'cat_alias_name',
])->with([
'category' => function($query){
$query->field([
'cat_id',
'cat_name',
'cat_alias_name',
'parent_id'
])->withJoin([
'joinGoods' => [
'goods_id',
'cat_id',
'goods_thumb',
'goods_img'
]], 'right');
},
])->where('parent_id', $pid)->select();
if($data){
return json(['code' => 200, 'msg' => '操作成功', 'data' => $data]);
}else{
return json(['code' => 201, 'msg' => '无此数据']);
}
}
分类数据
{
"code": 200,
"msg": "操作成功",
"data": [
{
"cat_id": 1,
"cat_name": "图书、音像、电子书",
"parent_id": 0,
"cat_alias_name": "图书音像",
"category": []
},
{
"cat_id": 3,
"cat_name": "手机、数码、通信",
"parent_id": 0,
"cat_alias_name": "手机数码",
"category": [
{
"cat_id": 42,
"cat_name": "运营商",
"cat_alias_name": "",
"parent_id": 3,
"joinGoods": {
"goods_id": 666,
"cat_id": 42
}
},
{
"cat_id": 99,
"cat_name": "时尚影音",
"cat_alias_name": "",
"parent_id": 3,
"joinGoods": {
"goods_id": 667,
"cat_id": 99
}
},
{
"cat_id": 99,
"cat_name": "时尚影音",
"cat_alias_name": "",
"parent_id": 3,
"joinGoods": {
"goods_id": 673,
"cat_id": 99
}
},
{
"cat_id": 47,
"cat_name": "手机配件",
"cat_alias_name": "",
"parent_id": 3,
"joinGoods": {
"goods_id": 674,
"cat_id": 47
}
},
{
"cat_id": 47,
"cat_name": "手机配件",
"cat_alias_name": "",
"parent_id": 3,
"joinGoods": {
"goods_id": 706,
"cat_id": 47
}
},
{
"cat_id": 47,
"cat_name": "手机配件",
"cat_alias_name": "",
"parent_id": 3,
"joinGoods": {
"goods_id": 709,
"cat_id": 47
}
}
]
},
{
"cat_id": 4,
"cat_name": "电脑、办公",
"parent_id": 0,
"cat_alias_name": "电脑办公",
"category": [
{
"cat_id": 157,
"cat_name": "办公打印",
"cat_alias_name": "",
"parent_id": 4,
"joinGoods": {
"goods_id": 615,
"cat_id": 157
}
},
{
"cat_id": 148,
"cat_name": "网络产品",
"cat_alias_name": "",
"parent_id": 4,
"joinGoods": {
"goods_id": 616,
"cat_id": 148
}
},
{
"cat_id": 148,
"cat_name": "网络产品",
"cat_alias_name": "",
"parent_id": 4,
"joinGoods": {
"goods_id": 618,
"cat_id": 148
}
},
{
"cat_id": 144,
"cat_name": "外设产品",
"cat_alias_name": "",
"parent_id": 4,
"joinGoods": {
"goods_id": 619,
"cat_id": 144
}
},
{
"cat_id": 141,
"cat_name": "电脑配件",
"cat_alias_name": "",
"parent_id": 4,
"joinGoods": {
"goods_id": 620,
"cat_id": 141
}
},
{
"cat_id": 141,
"cat_name": "电脑配件",
"cat_alias_name": "",
"parent_id": 4,
"joinGoods": {
"goods_id": 623,
"cat_id": 141
}
},
{
"cat_id": 132,
"cat_name": "电脑整机",
"cat_alias_name": "",
"parent_id": 4,
"joinGoods": {
"goods_id": 624,
"cat_id": 132
}
},
{
"cat_id": 157,
"cat_name": "办公打印",
"cat_alias_name": "",
"parent_id": 4,
"joinGoods": {
"goods_id": 663,
"cat_id": 157
}
},
{
"cat_id": 141,
"cat_name": "电脑配件",
"cat_alias_name": "",
"parent_id": 4,
"joinGoods": {
"goods_id": 710,
"cat_id": 141
}
},
{
"cat_id": 132,
"cat_name": "电脑整机",
"cat_alias_name": "",
"parent_id": 4,
"joinGoods": {
"goods_id": 712,
"cat_id": 132
}
},
{
"cat_id": 144,
"cat_name": "外设产品",
"cat_alias_name": "",
"parent_id": 4,
"joinGoods": {
"goods_id": 713,
"cat_id": 144
}
},
{
"cat_id": 141,
"cat_name": "电脑配件",
"cat_alias_name": "",
"parent_id": 4,
"joinGoods": {
"goods_id": 714,
"cat_id": 141
}
},
{
"cat_id": 132,
"cat_name": "电脑整机",
"cat_alias_name": "",
"parent_id": 4,
"joinGoods": {
"goods_id": 716,
"cat_id": 132
}
},
{
"cat_id": 141,
"cat_name": "电脑配件",
"cat_alias_name": "",
"parent_id": 4,
"joinGoods": {
"goods_id": 718,
"cat_id": 141
}
},
{
"cat_id": 132,
"cat_name": "电脑整机",
"cat_alias_name": "",
"parent_id": 4,
"joinGoods": {
"goods_id": 719,
"cat_id": 132
}
}
]
},
{
"cat_id": 5,
"cat_name": "家居、家具、家装、厨具",
"parent_id": 0,
"cat_alias_name": "家居家纺",
"category": [
{
"cat_id": 233,
"cat_name": "灯具",
"cat_alias_name": "",
"parent_id": 5,
"joinGoods": {
"goods_id": 658,
"cat_id": 233
}
},
{
"cat_id": 159,
"cat_name": "家装建材",
"cat_alias_name": "",
"parent_id": 5,
"joinGoods": {
"goods_id": 664,
"cat_id": 159
}
},
{
"cat_id": 143,
"cat_name": "厨具",
"cat_alias_name": "",
"parent_id": 5,
"joinGoods": {
"goods_id": 721,
"cat_id": 143
}
},
{
"cat_id": 143,
"cat_name": "厨具",
"cat_alias_name": "",
"parent_id": 5,
"joinGoods": {
"goods_id": 722,
"cat_id": 143
}
},
{
"cat_id": 205,
"cat_name": "家具",
"cat_alias_name": "",
"parent_id": 5,
"joinGoods": {
"goods_id": 723,
"cat_id": 205
}
},
{
"cat_id": 205,
"cat_name": "家具",
"cat_alias_name": "",
"parent_id": 5,
"joinGoods": {
"goods_id": 724,
"cat_id": 205
}
},
{
"cat_id": 255,
"cat_name": "生活日用",
"cat_alias_name": "",
"parent_id": 5,
"joinGoods": {
"goods_id": 725,
"cat_id": 255
}
},
{
"cat_id": 188,
"cat_name": "家纺",
"cat_alias_name": "",
"parent_id": 5,
"joinGoods": {
"goods_id": 726,
"cat_id": 188
}
},
{
"cat_id": 205,
"cat_name": "家具",
"cat_alias_name": "",
"parent_id": 5,
"joinGoods": {
"goods_id": 727,
"cat_id": 205
}
},
{
"cat_id": 159,
"cat_name": "家装建材",
"cat_alias_name": "",
"parent_id": 5,
"joinGoods": {
"goods_id": 728,
"cat_id": 159
}
},
{
"cat_id": 188,
"cat_name": "家纺",
"cat_alias_name": "",
"parent_id": 5,
"joinGoods": {
"goods_id": 729,
"cat_id": 188
}
}
]
},
{
"cat_id": 6,
"cat_name": "男装、女装、内衣",
"parent_id": 0,
"cat_alias_name": "男装女装",
"category": [
{
"cat_id": 347,
"cat_name": "女装",
"cat_alias_name": "",
"parent_id": 6,
"joinGoods": {
"goods_id": 630,
"cat_id": 347
}
},
{
"cat_id": 347,
"cat_name": "女装",
"cat_alias_name": "",
"parent_id": 6,
"joinGoods": {
"goods_id": 635,
"cat_id": 347
}
}
]
},
{
"cat_id": 8,
"cat_name": "鞋靴、箱包、钟表、奢侈品",
"parent_id": 0,
"cat_alias_name": "鞋靴箱包",
"category": []
},
{
"cat_id": 11,
"cat_name": "母婴、玩具乐器",
"parent_id": 0,
"cat_alias_name": "母婴玩具",
"category": []
},
{
"cat_id": 12,
"cat_name": "食品、酒类、生鲜、特产",
"parent_id": 0,
"cat_alias_name": "食品酒水",
"category": []
},
{
"cat_id": 858,
"cat_name": "家用电器",
"parent_id": 0,
"cat_alias_name": "家用电器",
"category": [
{
"cat_id": 1129,
"cat_name": "厨房电器",
"cat_alias_name": "",
"parent_id": 858,
"joinGoods": {
"goods_id": 647,
"cat_id": 1129
}
},
{
"cat_id": 1160,
"cat_name": "五金家装",
"cat_alias_name": "",
"parent_id": 858,
"joinGoods": {
"goods_id": 649,
"cat_id": 1160
}
},
{
"cat_id": 1105,
"cat_name": "大家电",
"cat_alias_name": "",
"parent_id": 858,
"joinGoods": {
"goods_id": 687,
"cat_id": 1105
}
},
{
"cat_id": 1115,
"cat_name": "生活电器",
"cat_alias_name": "",
"parent_id": 858,
"joinGoods": {
"goods_id": 688,
"cat_id": 1115
}
},
{
"cat_id": 1160,
"cat_name": "五金家装",
"cat_alias_name": "",
"parent_id": 858,
"joinGoods": {
"goods_id": 695,
"cat_id": 1160
}
},
{
"cat_id": 1160,
"cat_name": "五金家装",
"cat_alias_name": "",
"parent_id": 858,
"joinGoods": {
"goods_id": 827,
"cat_id": 1160
}
}
]
},
{
"cat_id": 860,
"cat_name": "个人化妆、清洁用品",
"parent_id": 0,
"cat_alias_name": "个人化妆",
"category": [
{
"cat_id": 891,
"cat_name": "口腔护理",
"cat_alias_name": "",
"parent_id": 860,
"joinGoods": {
"goods_id": 636,
"cat_id": 891
}
},
{
"cat_id": 885,
"cat_name": "身体护肤",
"cat_alias_name": "",
"parent_id": 860,
"joinGoods": {
"goods_id": 637,
"cat_id": 885
}
},
{
"cat_id": 896,
"cat_name": "香水彩妆",
"cat_alias_name": "",
"parent_id": 860,
"joinGoods": {
"goods_id": 638,
"cat_id": 896
}
},
{
"cat_id": 880,
"cat_name": "洗发护发",
"cat_alias_name": "",
"parent_id": 860,
"joinGoods": {
"goods_id": 640,
"cat_id": 880
}
},
{
"cat_id": 896,
"cat_name": "香水彩妆",
"cat_alias_name": "",
"parent_id": 860,
"joinGoods": {
"goods_id": 641,
"cat_id": 896
}
},
{
"cat_id": 885,
"cat_name": "身体护肤",
"cat_alias_name": "",
"parent_id": 860,
"joinGoods": {
"goods_id": 642,
"cat_id": 885
}
},
{
"cat_id": 876,
"cat_name": "面部护肤",
"cat_alias_name": "",
"parent_id": 860,
"joinGoods": {
"goods_id": 643,
"cat_id": 876
}
},
{
"cat_id": 876,
"cat_name": "面部护肤",
"cat_alias_name": "",
"parent_id": 860,
"joinGoods": {
"goods_id": 644,
"cat_id": 876
}
}
]
},
{
"cat_id": 861,
"cat_name": "汽车、汽车用品",
"parent_id": 0,
"cat_alias_name": "汽车汽配",
"category": []
},
{
"cat_id": 863,
"cat_name": "营养保健",
"parent_id": 0,
"cat_alias_name": "保健器械",
"category": [
{
"cat_id": 1028,
"cat_name": "营养健康",
"cat_alias_name": "",
"parent_id": 863,
"joinGoods": {
"goods_id": 907,
"cat_id": 1028
}
}
]
},
{
"cat_id": 864,
"cat_name": "腕表、珠宝配饰、眼镜",
"parent_id": 0,
"cat_alias_name": "腕表珠宝",
"category": []
},
{
"cat_id": 865,
"cat_name": "保健滋补、医药、成人",
"parent_id": 0,
"cat_alias_name": "营养滋补",
"category": []
},
{
"cat_id": 866,
"cat_name": "休闲、运动、户外健身",
"parent_id": 0,
"cat_alias_name": "休闲运动",
"category": [
{
"cat_id": 909,
"cat_name": "运动服饰",
"cat_alias_name": "",
"parent_id": 866,
"joinGoods": {
"goods_id": 912,
"cat_id": 909
}
}
]
},
{
"cat_id": 867,
"cat_name": "礼品、卡、旅游、充值",
"parent_id": 0,
"cat_alias_name": "礼品卡券",
"category": []
},
{
"cat_id": 1476,
"cat_name": "房屋租售",
"parent_id": 0,
"cat_alias_name": "",
"category": []
},
{
"cat_id": 1477,
"cat_name": "饮食娱乐",
"parent_id": 0,
"cat_alias_name": "",
"category": []
}
]
}