model = new \app\admin\model\Navigation; $tree = Tree::instance(); $tree->init(collection($this->model->order('id asc')->select())->toArray(), 'pid'); $this->navlist = $tree->getTreeList($tree->getTreeArray(0), 'title'); $navlistdata = [0 => ['type' => 'all', 'title' => __('None')]]; foreach ($this->navlist as $k => $v) { $navlistdata[$v['id']] = $v; } $this->view->assign("parentList", $navlistdata); } /** * 默认生成的控制器所继承的父类中有index/add/edit/del/multi五个基础方法、destroy/restore/recyclebin三个回收站方法 * 因此在当前控制器中可不用编写增删改查的代码,除非需要自己控制这部分逻辑 * 需要将application/admin/library/traits/Backend.php中对应的方法复制到当前控制器,然后进行修改 */ /** * 查看 */ public function index() { //设置过滤方法 $this->request->filter(['strip_tags']); if ($this->request->isAjax()) { $search = $this->request->request("search"); $type = $this->request->request("type"); //构造父类select列表选项数据 $list = []; foreach ($this->navlist as $k => $v) { if ($search) { if ($v['type'] == $type && stripos($v['name'], $search) !== false || stripos($v['nickname'], $search) !== false) { if ($type == "all" || $type == null) { $list = $this->navlist; } else { $list[] = $v; } } } else { if ($type == "all" || $type == null) { $list = $this->navlist; } elseif ($v['type'] == $type) { $list[] = $v; } } } $total = count($list); $result = array("total" => $total, "rows" => $list); return json($result); } return $this->view->fetch(); } }