📖 File Reader
<?php
namespace app\api\model;
use think\facade\Db;
use think\Model;
class ModRegion extends Model
{
protected $name = 'region';//表名
/**
* 地区联动(多维数组)
*/
static function region_dw()
{
$arr_1 = ModRegion::where("level = 1")->field("id,pid,name,level")->order("id asc")->select();
$arr_2 = ModRegion::where("level = 2")->field("id,pid,name,level")->order("id asc")->select();
$arr_3 = ModRegion::where("level = 3")->field("id,pid,name,level")->order("id asc")->select();
$new_arr2 = [];
foreach($arr_2 as $v2){
$data= [
'value' => $v2['id'],
'label' => $v2['name'],
'pid' => $v2['pid']
];
foreach($arr_3 as $v3){
if($v2['id'] == $v3['pid']){
$data['children'][] = [
'value'=> $v3['id'],
'label' => $v3['name'],
'pid' => $v3['pid'],
];
}
}
$new_arr2[]=$data;
}
$new_arr1 = [];
foreach($arr_1 as $v1){
$data= [
'value' => $v1['id'],
'label' => $v1['name'],
'pid' => $v1['pid'],
];
foreach($new_arr2 as $nv2){
if($v1['id'] == $nv2['pid']){
$data['children'][] = [
'value' => $nv2['value'],
'label' => $nv2['label'],
'pid' => $nv2['pid'],
'children' => $nv2['children']
];
}
}
$new_arr1[] = $data;
}
$region = [
'value' => 0,
'label' => '中国',
'children' => $new_arr1,
];
return $region;
}
/**
* 地区联动查询
* @param int $region_id 地区id
*/
static function region_d($region_id=0)
{
$list = ModRegion::where("pid = $region_id")->field("id,pid,name,level")->order("id asc")->select()->toArray();
return $list;
}
}