Category.php
1.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<?php
namespace App\Models\Product;
use App\Models\Base;
use App\Models\RouteMap;
use App\Services\Facades\Upload;
use Illuminate\Database\Eloquent\SoftDeletes;
class Category extends Base
{
use SoftDeletes;
//设置关联表名
protected $table = 'gl_product_category';
const STATUS_ACTIVE = 1;
/**
* 子分类
* @var array
*/
protected $child_ids_arr = [];
protected $appends = ['route'];
public function getRouteAttribute(){
return RouteMap::getRoute(RouteMap::SOURCE_PRODUCT_CATE, $this->id, $this->project_id);
}
public function getImageAttribute($value)
{
return Upload::path2url($value);
}
public function setImageAttribute($value)
{
$this->attributes['image'] = Upload::url2path($value);
}
/**
* 获取指定分类的所有子分类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;
}
}