title = '文章管理'; CmsArticle::mQuery()->layTable(function () { }, static function (QueryHelper $query) { $query->where('is_deleted', 0); $query->with(['category']); $query->equal('status')->like('title'); $query->timeBetween('create_at'); }); } public function _index_page_filter(&$list) { foreach ($list as &$item) { $cate_list = $item['category']; $item['cate_name'] = join(',', array_column($cate_list, 'name')); } } /** * 添加文章 * @auth true * @menu true * @login true * @return void */ public function add() { $this->title = '添加文章'; $this->cates = CmsCategory::getList(); $this->cate_ids = []; CmsArticle::mForm('form'); } /** * 编辑文章 * @auth true * @menu true * @login true * @return void */ public function edit() { $this->title = '编辑文章'; $this->cates = CmsCategory::getList(); $this->id = $this->request->param('id'); $this->cate_ids = CmsCateArticle::where(['aid' => $this->id])->column('cid'); CmsArticle::mForm('form', "id"); } public function _form_filter(&$data) { unset($data['cate_ids']); } public function _form_result($state, $data) { if (isset($data['id'])) { CmsCateArticle::where(['aid' => $data['id']])->delete(); $cate_ids = $this->request->param('cate_ids', []); foreach ($cate_ids as $cid) { CmsCateArticle::create(['aid' => $data['id'], 'cid' => $cid]); } } } /** * 删除文章 * @auth true * @menu true * @login true * @return void */ public function remove() { CmsArticle::mDelete('id'); } /** * 修改文章状态 * @auth true * @menu true * @login true * @return void */ public function status() { CmsArticle::mSave($this->_vali([ 'id.require' => '文章ID不能为空', 'status.in:0,1' => '状态值范围异常!', 'status.require' => '状态值不能为空!', ]), 'id'); } public function _status_save_result($state, $data) { if ($state) { $status = $this->request->param('status'); $id = $this->request->param('id'); if ($status == 1) { CmsArticle::mk()->where('id', $id)->save([ 'publish_at' => date('Y-m-d H:i:s') ]); } } } public function sort() { CmsArticle::mSave($this->_vali([ 'id.require' => '文章ID不能为空', 'sort.require' => '排序值不能为空!', 'sort.number' => '排序必须为数字!', 'sort.between:0,9999' => '排序值必须为0~9999之间!', ]), 'id'); } }