visuddhinanda 2 سال پیش
والد
کامیت
0e7844dab4
1فایلهای تغییر یافته به همراه91 افزوده شده و 0 حذف شده
  1. 91 0
      app/Http/Controllers/NavArticleController.php

+ 91 - 0
app/Http/Controllers/NavArticleController.php

@@ -0,0 +1,91 @@
+<?php
+
+namespace App\Http\Controllers;
+
+use App\Models\ArticleCollection;
+use Illuminate\Http\Request;
+use App\Http\Resources\ArticleMapResource;
+
+class NavArticleController extends Controller
+{
+    /**
+     * Display a listing of the resource.
+     *
+     * @return \Illuminate\Http\Response
+     */
+    public function index()
+    {
+        //
+    }
+
+    /**
+     * Store a newly created resource in storage.
+     *
+     * @param  \Illuminate\Http\Request  $request
+     * @return \Illuminate\Http\Response
+     */
+    public function store(Request $request)
+    {
+        //
+    }
+
+    /**
+     * Display the specified resource.
+     * 文章导航
+     * 文集中 某个文章的 前一个,后一个
+     * @param  \App\Models\ArticleCollection  $articleCollection
+     * @return \Illuminate\Http\Response
+     */
+    public function show(string $id)
+    {
+        //article_anthology
+        $id = explode('_',$id);
+        if(count($id) !== 2){
+            return $this->error('参数错误。参数应为 2 实际得到'.count($id),400,400);
+        }
+        $curr = ArticleCollection::where('collect_id',$id[1])
+                                ->where('article_id',$id[0])
+                                ->first();
+        if(!$curr){
+            return $this->error('article not found');
+        }
+        $data = array();
+        $data['curr'] = new ArticleMapResource($curr);
+        $prev = ArticleCollection::where('id','<',$curr->id)
+                                ->orderBy('id','desc')
+                                ->first();
+        if($prev && $prev->level === $curr->level){
+            $data['prev'] = new ArticleMapResource($prev);
+        }
+        $next = ArticleCollection::where('id','>',$curr->id)
+                ->orderBy('id')
+                ->first();
+        if($next && $next->level === $curr->level){
+            $data['next'] = new ArticleMapResource($next);
+        }
+        return $this->ok($data);
+    }
+
+    /**
+     * Update the specified resource in storage.
+     *
+     * @param  \Illuminate\Http\Request  $request
+     * @param  \App\Models\ArticleCollection  $articleCollection
+     * @return \Illuminate\Http\Response
+     */
+    public function update(Request $request, ArticleCollection $articleCollection)
+    {
+        //
+    }
+
+    /**
+     * Remove the specified resource from storage.
+     *
+     * @param  \App\Models\ArticleCollection  $articleCollection
+     * @return \Illuminate\Http\Response
+     */
+    public function destroy(ArticleCollection $articleCollection)
+    {
+        //
+    }
+}