model = new \app\admin\model\workorder\Kbs; $this->view->assign("statusList", $this->model->getStatusList()); } public function import() { parent::import(); } /** * 查看 */ public function index() { //当前是否为关联查询 $this->relationSearch = true; //设置过滤方法 $this->request->filter(['strip_tags', 'trim']); if ($this->request->isAjax()) { //如果发送的来源是Selectpage,则转发到Selectpage if ($this->request->request('keyField')) { return $this->selectpage(); } list($where, $sort, $order, $offset, $limit) = $this->buildparams(); $filter = $this->request->get("filter", ''); $filter = (array)json_decode($filter, true); $filter = $filter ? $filter : []; $category_where = []; if (array_key_exists('category_id', $filter)) { $category_kbs_ids = Category::where('id', $filter['category_id'])->value('kbs_ids'); $category_where['kbs.id'] = ['in', $category_kbs_ids]; } $total = $this->model->with(['category']) ->where($where) ->where($category_where) ->order($sort, $order) ->count(); $list = $this->model->with(['category']) ->where($where) ->where($category_where) ->order($sort, $order) ->limit($offset, $limit) ->select(); $domain = $this->request->domain(); foreach ($list as $row) { $row->url = $row->url ? $row->url : $domain . '/index/workorder/kbs?id=' . $row->id; } $list = collection($list)->toArray(); $result = ["total" => $total, "rows" => $list]; return json($result); } $categoryList = []; $categorys = Category::order("weigh desc,id desc")->select(); foreach ($categorys as $index => $category) { $categoryList[] = [ 'id' => $category->id, 'parent' => $category->pid ? $category->pid : '#', 'text' => $category->name, 'state' => ['opened' => true, 'disabled' => $category->pid ? false : true], 'type' => $category->pid ? 'list' : 'none' ]; } $this->assignconfig('categoryList', $categoryList); return $this->view->fetch(); } /** * 真实删除 */ public function destroy($ids = "") { if (!$this->request->isPost()) { $this->error(__("Invalid parameters")); } $ids = $ids ? $ids : $this->request->post("ids"); $pk = $this->model->getPk(); $adminIds = $this->getDataLimitAdminIds(); if (is_array($adminIds)) { $this->model->where($this->dataLimitField, 'in', $adminIds); } if ($ids) { $this->model->where($pk, 'in', $ids); } $count = 0; Db::startTrans(); try { $list = $this->model->onlyTrashed()->select(); foreach ($list as $k => $v) { $count += $v->delete(true); $this->model->catDelKbs($v->category_id, $v->id); } Db::commit(); } catch (PDOException $e) { Db::rollback(); $this->error($e->getMessage()); } catch (Exception $e) { Db::rollback(); $this->error($e->getMessage()); } if ($count) { $this->success(); } else { $this->error(__('No rows were deleted')); } $this->error(__('Parameter %s can not be empty', 'ids')); } }