Category.php 1.2 KB
<?php

namespace App\Models\Product;


use App\Models\Base;
use Illuminate\Database\Eloquent\SoftDeletes;

/**
 * @method static get()
 * @method static where(string $string, int $int)
 */
class Category extends Base
{
    use SoftDeletes;

    //设置关联表名
    protected $table = 'gl_product_category';
    //连接数据库
    protected $connection = 'custom_mysql';

    const STATUS_ACTIVE = 1;

    /**
     * 子分类
     * @var array
     */
    protected $child_ids_arr = [];

    /**
     * 获取指定分类的所有子分类IDS(包括自己)
     * @param $id
     * @return array
     * @author zbj
     * @date 2023/4/28
     */
    public function getChildIdsArr($id)
    {
        $this->child_ids_arr = [$id];
        return $this->getChildrenIdArr($id);
    }

    /**
     * 递归获取指定分类的所有子孙
     * @param $id
     * @return array
     * @author zbj
     * @date 2023/4/28
     */
    protected function getChildrenIdArr($id)
    {
        $list = parent::where("pid", $id)->pluck('pid', 'id');
        if ($list) {
            foreach ($list as $id => $pid) {
                $this->child_ids_arr[] = $id;
                $this->getChildrenIdArr($id);
            }
        }
        return $this->child_ids_arr;
    }
}