model = new \app\admin\model\store\service\Service; $this->view->assign("typeList", $this->model->getTypeList()); $this->view->assign("statusList", $this->model->getStatusList()); } private function fetchWhere() { $admin = $this->auth->getUserInfo(); if (!$admin) $this->error("error"); $p_where = [ ["service.type", "=", \E_SERVICE_TYPE::Store] ]; if (\E_ADMIN_TYPE::Store === $admin["type"]) { array_push($p_where, ["service.store_id", "=", $admin["store_id"]]); } else if (\E_ADMIN_TYPE::Agency === $admin["type"]) { $stores = (new \app\admin\model\store\Store())->fetchByAgency($admin); array_push($p_where, ["service.store_id", "in", array_map(function ($data) { return $data["id"]; }, $stores)]); } return $p_where; } /** * 默认生成的控制器所继承的父类中有index/add/edit/del/multi五个基础方法、destroy/restore/recyclebin三个回收站方法 * 因此在当前控制器中可不用编写增删改查的代码,除非需要自己控制这部分逻辑 * 需要将application/admin/library/traits/Backend.php中对应的方法复制到当前控制器,然后进行修改 */ /** * 查看 */ 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->c_selectpage($this->fetchWhere()); } list($where, $sort, $order, $offset, $limit) = $this->buildparams(); $query = $this->model ->with(['store', 'category']) ->where($where); foreach ($this->fetchWhere() as $item) { $query->where($item[0], $item[1], $item[2]); } $list = $query ->order($sort, $order) ->paginate($limit); foreach ($list as $row) { $row->visible(['id', 'name', 'cover_image', 'real_price', 'duration_minute', 'introduce_images', 'hot', 'sift', 'count', 'sort', 'status', 'updatetime']); $row->visible(['store']); $row->getRelation('store')->visible(['name']); $row->visible(['category']); $row->getRelation('category')->visible(['name']); } $result = array("total" => $list->total(), "rows" => $list->items()); return json($result); } return $this->view->fetch(); } public function add() { return parent::c_add(["type" => \E_SERVICE_TYPE::Store]); } }