modelClass = new PageModel; } public function edit() { $catid = $this->request->param('catid/d', 0); $lang = $this->request->param('lang/s', LangModel::getDefaultMark()); $row = $this->modelClass->where('catid', $catid)->find(); if (!$row) { $this->error('记录未找到'); } $adminIds = $this->getDataLimitAdminIds(); if (is_array($adminIds)) { if (!in_array($row[$this->dataLimitField], $adminIds)) { $this->error('你没有权限访问'); } } if ($this->request->isPost()) { $params = $this->request->post('row/a'); if ($params) { $params = $this->preExcludeFields($params); Db::startTrans(); try { $saveLang = $params['lang'] ?? $lang; $this->modelClass->savePage($params, $saveLang); Db::commit(); } catch (ValidateException | PDOException | Exception $e) { Db::rollback(); $this->error($e->getMessage()); } $this->success('修改成功'); } $this->error('参数不能为空'); } $data = $this->modelClass->getPageWithLang($catid, $lang); $langs = LangModel::getEnabledList(); $langStatus = []; foreach ($langs as $item) { $langStatus[$item->mark] = PageData::where(['page_id' => $row->id, 'lang' => $item->mark])->count() > 0 ? 1 : 0; } $this->view->assign('data', $data); $this->view->assign('langs', $langs); $this->view->assign('currentLang', $lang); $this->view->assign('defaultLang', LangModel::getDefaultMark()); $this->view->assign('langStatus', $langStatus); return $this->fetch(); } }