where('type', $this->request->param('type', 1)) ->order('id desc'); $category_id = $this->request->param('category_id', 0); if (!empty($category_id)) { $model_list = $model_list->where('category_id', $category_id); } $list = $model_list->paginate([ 'query' => $this->request->get(), ]); View::assign('list', $list); return View::fetch(); } /** * 显示创建资源表单页. * * @return \think\Response */ public function create() { // return View::fetch(); } /** * 保存新建的资源. * * @param Request $request * @return \think\Response */ public function save(Request $request) { // $post_data = $request->post(); $post_data['uid'] = uniqid(); $categorys = []; $tags = []; if (isset($post_data['categorys'])) { $categorys = $post_data['categorys']; unset($post_data['categorys']); } if (isset($post_data['tags'])) { $tags = $post_data['tags']; unset($post_data['tags']); } $model_post = ModelPost::create($post_data); foreach ($categorys as $category) { PostCategory::create([ 'post_id' => $model_post->id, 'category_id' => $category, ]); } foreach ($tags as $tag) { PostTag::create([ 'post_id' => $model_post->id, 'tag_id' => $tag, ]); } return $this->success('添加成功', url('index', [ 'type' => $this->request->param('type'), 'category_id' => $this->request->param('category_id'), ])); } public function convertHtml2Markdown() { $content = $this->request->post('content'); $converter = new HtmlConverter(); $markdown = $converter->convert($content); return json_message(['markdown' => $markdown]); } /** * 显示指定的资源. * * @param int $id * @return \think\Response */ public function read($id) { // } /** * 显示编辑资源表单页. * * @param int $id * @return \think\Response */ public function edit($id) { // $model_post = ModelPost::find($id); View::assign('post', $model_post); return View::fetch(); } public function editContent($id) { $model_post = ModelPost::find($id); View::assign('post', $model_post); return View::fetch(); } public function output($id) { $model_post = ModelPost::find($id); $list_post_platform = Nav::where('type', 12)->order('sort asc')->select(); foreach ($list_post_platform as $model_platform) { $platform_info = explode("\n",$model_platform->desc); $model_platform->home_url = $platform_info[0]?? ''; $model_platform->account = $platform_info[1] ?? ''; } View::assign('post', $model_post); View::assign('list_post_platform', $list_post_platform); return View::fetch(); } /** * 保存更新的资源. * * @param Request $request * @param int $id * @return \think\Response */ public function update(Request $request, $id) { // $post_data = $request->post(); $model_post = ModelPost::find($id); $categorys = []; $tags = []; if (isset($post_data['categorys'])) { $categorys = $post_data['categorys']; unset($post_data['categorys']); $old_category_list = PostCategory::where('post_id', $id)->select(); $old_category_id_list = array_column((array) $old_category_list, 'id'); // 旧的有新的没有 foreach ($old_category_list as $model_category) { if (!in_array($model_category->id, $categorys)) { $model_category->delete(); } } // 旧的没有新的有 foreach ($categorys as $category) { if (!in_array($category, $old_category_id_list)) { PostCategory::create([ 'post_id' => $model_post->id, 'category_id' => $category, ]); } } } if (isset($post_data['tags'])) { $tags = $post_data['tags']; unset($post_data['tags']); $old_tag_list = PostTag::where('post_id', $id)->select(); $old_tag_id_list = array_column((array) $old_tag_list, 'id'); foreach ($old_tag_list as $model_tag) { if (!in_array($model_tag->id, $tags)) { $model_tag->delete(); } } foreach ($tags as $tag) { if (!in_array($tag, $old_tag_id_list)) { PostTag::create([ 'post_id' => $model_post->id, 'tag_id' => $tag, ]); } } } $model_post->save($post_data); Cache::delete('sitemap_last_etag'); return $this->success('保存成功', url('index', ['type' => $model_post->getData('type')])); } /** * 删除指定资源. * * @param int $id * @return \think\Response */ public function delete($id) { // $model_post = ModelPost::find($id); $model_post->delete(); PostCategory::where('post_id', $id)->delete(); PostTag::where('post_id', $id)->delete(); return json_message(); } }