laravel递归获取子类所有的父类

发布时间:2022-09-03 20:09:46 阅读:854次

laravel获取子类所有的父类

public static function allMainId($array,$id){
        $array = SalesCatalog::select('id','parent_id')->where('id',$id)->get()->toArray();
        $arr = array();
        foreach($array as $v){
            if($v['id'] == $id){
                $arr[] = $v['parent_id'];
                $arr = array_merge($arr,self::allMainId($array,$v['parent_id']));
            };
        };
        return $arr;
    }
    
表结构如下
CREATE TABLE hl_sales_catalog (
   id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
   sales_catalog_name varchar(150) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '销售目录名称',
   parent_id bigint(20) NOT NULL COMMENT '父级目录id',
   sort mediumint(9) NOT NULL DEFAULT '0' COMMENT '排序:越小越往前排',
   created_at timestamp NULL DEFAULT NULL,
   updated_at timestamp NULL DEFAULT NULL,
        PRIMARY KEY (id) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=111 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;

调用方法

$all_main_id = self::allMainId('',$params['parent_id']);

如有问题,可以QQ搜索群1028468525加入群聊,欢迎一起研究技术

支付宝 微信

有疑问联系站长,请联系QQ:QQ咨询

转载请注明:laravel递归获取子类所有的父类 出自老鄢博客 | 欢迎分享