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); } }