Files

71 lines
1.6 KiB
PHP

<?php
namespace app\api\controller\data;
use app\common\controller\Api;
use app\admin\model\data\Area as AreaModel;
/**
* 省市区数据控制器
*/
class Area extends Api
{
protected $noNeedLogin = ['index'];
protected $noNeedRight = ['*'];
/**
* 获取省市区树形数据
* @return void
*/
public function index()
{
$list = AreaModel::where('pid', 0)
->order('id', 'asc')
->field('id, pid, level, name')
->with(['children' => function ($query) {
return $query->field('id, pid, level, name')->with(['children' => function ($query) {
return $query->field('id, pid, level, name');
}]);
}])
->select();
$this->success('获取成功', $list);
}
/**
* 获取下级地区
* @return void
*/
public function children()
{
$pid = $this->request->param('pid', 0);
$list = AreaModel::where('pid', $pid)
->order('id', 'asc')
->field('id, pid, level, name')
->select();
$this->success('获取成功', $list);
}
/**
* 根据名称搜索地区
* @return void
*/
public function search()
{
$keyword = $this->request->param('keyword');
if (empty($keyword)) {
$this->error('请输入搜索关键词');
}
$list = AreaModel::whereLike('name', '%' . $keyword . '%')
->order('id', 'asc')
->field('id, pid, level, name')
->limit(20)
->select();
$this->success('获取成功', $list);
}
}