Ejemplo n.º 1
0
 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');
 }
Ejemplo n.º 2
0
 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);
 }
Ejemplo n.º 3
0
 /**
  * Display the specified resource.
  *
  * @param  int  $id
  * @return Response
  */
 public function show($id)
 {
     $article = Articles::find($id);
     return View::make('articles.view', compact('article'));
 }
Ejemplo n.º 4
0
 /**
  * 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');
 }
Ejemplo n.º 6
0
 public function show($id)
 {
     $articles = Articles::find($id);
     return view('articles.show', compact('articles'));
 }