Village.php
2.8 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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
<?php
/**
+-----------------------------------------------------------------------------------------------------------------------
* 模型层:地区-行政村 模型类
+-----------------------------------------------------------------------------------------------------------------------
*
* PHP version 7
*
* @category App\Models\Area
* @package App\Models\Area
* @author Richer <yangzi1028@163.com>
* @date 2021年11月3日17:04:04
* @copyright 2020-2022 Richer (http://www.Richer.com/)
* @license http://www.Richer.com/ License
* @link http://www.Richer.com/
*/
namespace App\Models\Area;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Support\Facades\DB;
/**
* Class Village
*
* @category App\Models\Area
* @package App\Models\Area
* @author Richer <yangzi1028@163.com>
* @date 2021年11月3日17:04:04
* @copyright 2020-2022 Richer (http://www.Richer.com/)
* @license http://www.Richer.com/ License
* @link http://www.Richer.com/
*/
class Village extends Area
{
// 指定数据库表
const TABLE = 'area_villages';
protected $table = self::TABLE;
// 指定对象显示名称:方便系统统一查询和做其他处理
const OBJ_NAME = 'village';
const OBJ_NAME_ZH = '行政村';
// 级别
const LEVEL = 5;
/**
* @return HasMany
*/
public function groups(): HasMany
{
return $this->hasMany(Group::class);
}
/**
* @return BelongsTo
*/
public function province(): BelongsTo
{
return $this->belongsTo(Province::class);
}
/**
* @return BelongsTo
*/
public function city(): BelongsTo
{
return $this->belongsTo(City::class);
}
/**
* @return BelongsTo
*/
public function county(): BelongsTo
{
return $this->belongsTo(County::class);
}
/**
* @return BelongsTo
*/
public function township(): BelongsTo
{
return $this->belongsTo(Township::class);
}
/**
* 根据区域的code获取区域的的代码集:主要为laravel-admin select组件使用
*
* @param int $pid
* @param string $operate
* @return array
*/
public static function getSelectOptions($pid = 0, $operate = '')
{
if (!$pid) {
return [];
}
if ($operate === 'link') {
return self::where('township_id', $pid)->orderBy('name')->get(['id', DB::raw('name as text')]);
}
if ($pid) {
$list = self::where('township_id', $pid)->get(['id','name']);
} else {
$list = self::all(['id','name']);
}
$options = [];
foreach ($list as $vo) {
$options[$vo->id] = $vo->name;
}
return $options;
}
}