public function update(Request $request) { $articleResult = Articles::find($request->input('id')); if (!$articleResult) { return redirect('backend/articles'); } $request->request->set('published_at', Carbon\Carbon::now()); $this->validate($request, ['title' => 'required', 'content' => 'required', 'published_at' => 'required', 'tags' => 'required']); $input = $request->all(); $articleResult->update($input); $raw_tags = array(); //文章没有修改前的标签 foreach ($articleResult->tags as $raw_v) { $raw_tags[] = $raw_v->tag_name; } $new_tags = explode(',', ltrim(rtrim(trim($input['tags']), ','), ',')); $new_tags = array_unique(array_map('trim', $new_tags)); //修改后的标签 $tags_inserts = array_diff($new_tags, $raw_tags); //需要和文章新增关系标签 $tags_deletes = array_diff($raw_tags, $new_tags); //需要和文章去除关系的标签 // dd($tags_deletes); DB::beginTransaction(); try { if (isset($tags_inserts) && count($tags_inserts)) { foreach ($tags_inserts as $tags_insert) { if ($tags_insert) { $tag_res = Tags::where('tag_name', $tags_insert)->first(); if (!$tag_res) { $articleResult->tags()->saveMany(new Tags(['tag_name' => $tags_insert, 'use_nums' => 1])); } else { $tag_res->use_nums++; $tag_res->save(); $tag_res->articles()->attach($articleResult->id); } } } } unset($tag_res); if (isset($tags_deletes) && count($tags_deletes)) { foreach ($tags_deletes as $tags_delete) { if ($tags_delete) { $tag_res = Tags::where('tag_name', $tags_delete)->first(); if ($tag_res) { $tag_res->use_nums--; $tag_res->save(); $tag_res->articles()->detach($articleResult->id); } } } } DB::commit(); } catch (\Exception $e) { DB::rollBack(); dd($e->getMessage()); } return redirect('backend/articles'); }
public function show($id) { $redis = Redis::connection('default'); $article = $redis->get("article_{$id}"); if ($article) { $article = unserialize($article); } else { $article = Articles::find($id); if (!$article) { return view('errors.404'); } $article->content = EndaEditor::MarkDecode($article->content); $redis->set("article_{$id}", serialize($article)); } return view('articles.show')->with('article', $article); }
/** * Display the specified resource. * * @param int $id * @return Response */ public function show($id) { $article = Articles::find($id); return View::make('articles.view', compact('article')); }
/** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { $article = Articles::find($id); if ($article['image']) { unlink(config('app.upload') . $article['image']); } $article->delete(); return redirect('/admin/dashboard'); }
public function delete($id) { $articles = Articles::find($id); $articles->delete(); return redirect('articles'); }
public function show($id) { $articles = Articles::find($id); return view('articles.show', compact('articles')); }