Maison  >  Article  >  cadre php  >  Comment implémenter une classification infinie dans Laravel

Comment implémenter une classification infinie dans Laravel

藏色散人
藏色散人avant
2020-11-16 13:43:552188parcourir
Ce qui suit est

Laravel La colonne tutoriel présentera à Laravel comment obtenir une classification de pôles infinie, j'espère que cela sera utile aux amis dans le besoin !

J'ai récemment développé des fonctions de produit. Après avoir essayé les méthodes de récursion et de référence, j'ai soudainement regardé en arrière et découvert que le framework laravel avait une méthode d'implémentation plus simple et plus efficace, des meilleures pratiques de classification Infinitus, un code ouvert à partager avec tout le monde. ! Marquez si vous êtes intéressé, merci~

La structure du tableau est la suivante :
CREATE TABLE `goods_category` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键id',
  `name` varchar(500) DEFAULT '' COMMENT '分类名称',
  `pid` int(5) unsigned DEFAULT '0' COMMENT '父级id',
  `level` tinyint(3) unsigned DEFAULT '1' COMMENT '分类等级',
  `status` tinyint(3) unsigned DEFAULT '0' COMMENT '分类状态:0-禁用,1-正常',
  `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  PRIMARY KEY (`id`) USING BTREE,
  KEY `status` (`status`)) ENGINE=InnoDB AUTO_INCREMENT=32 DEFAULT CHARSET=utf8mb4 COMMENT='商品分类表';

Format de stockage des données :

Comment implémenter une classification infinie dans Laravel

Code entreprise :
    // 模型文件
    public function children() {
        return $this->hasMany(get_class($this), 'pid' ,'id');
    }

    public function allChildren() {
        return $this->children()->with( 'allChildren' );
    }
rrree

Données traitées :

Comment implémenter une classification infinie dans Laravel

À ce point, laravel Le framework de classification Infinitus a été implémenté. Par rapport aux deux méthodes de récursion et de référence pour implémenter la classification Infinitus, est-ce beaucoup plus simple et plus efficace. Pour plus de fonctionnalités de laravel, veuillez laisser un message dans la zone de commentaire pour en discuter.

                                                                                                                                                                                                                

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer