Quellcode durchsuchen

新增话题详情

zhangchangchun vor 5 Jahren
Ursprung
Commit
52a3d6cbd8

+ 12 - 0
app/Http/Controllers/Topic/TopicController.php

@@ -11,6 +11,7 @@ namespace App\Http\Controllers\Topic;
 use App\Models\Topic;
 use App\Repositories\CategoryRepository;
 use App\Repositories\TopicRepository;
+use App\Transformers\DetailTopicTransformer;
 use App\Transformers\TopicTransformer;
 use Illuminate\Http\Request;
 use Illuminate\Support\Facades\Validator;
@@ -58,6 +59,17 @@ class TopicController extends Controller {
         ];
         return $data;
     }
+    //详情
+    public function view(Request $request){
+        $validator = Validator::make($request->all(), [
+            'id' => 'required|integer|max:12',
+        ]);
+        if ($validator->fails()) {
+            return $this->response->error($validator->errors()->first(), 500);
+        }
+        $topic = $this->topicRepository->view($request->all());
+        return $this->response->item($topic, new DetailTopicTransformer());
+    }
     //添加
     public function create(Request $request){
         $validator = Validator::make($request->all(), [

+ 4 - 0
app/Repositories/TopicRepository.php

@@ -172,4 +172,8 @@ class TopicRepository {
             return Response::create();
         }
     }
+    //详情
+    public function view($request){
+        return $this->topic->where('id', $request['id'])->first();
+    }
 }

+ 36 - 0
app/Transformers/DetailTopicTransformer.php

@@ -0,0 +1,36 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: Administrator
+ * Date: 2019-06-10
+ * Time: 18:47
+ */
+namespace App\Transformers;
+use App\Models\Topic;
+use League\Fractal\TransformerAbstract;
+use Illuminate\Support\Carbon;
+
+class DetailTopicTransformer extends TransformerAbstract{
+
+    public function transform(Topic $topic)
+    {
+        $category = [];
+        foreach ($topic->ct as $key=>$value){
+                $category[] = $value->category;
+        }
+        return [
+            'id' => $topic['id'],
+            'name' => $topic['name'],
+            'img' => $topic['img'],
+            'is_suggest' => $topic['is_suggest'],
+            'is_hot' => $topic['is_hot'],
+            'is_open' => $topic['is_open'],
+            'desc' => $topic['desc'],
+            'post_count' => 0,
+            'follow_count' => 0,
+            'page_count' => 0,
+            'created_at' => Carbon::parse($topic['created_at'])->toDateTimeString(),
+            'category_list'=>$category,
+        ];
+    }
+}

+ 2 - 0
routes/api.php

@@ -76,6 +76,8 @@ $api->version('v1', [
             $api->put('topic/topicEdit', 'TopicController@edit');
             //列表
             $api->get('topic/topicIndex', 'TopicController@index');
+            //详情
+            $api->get('topic/topicView', 'TopicController@view');
             //开启话题
             $api->put('topic/topicIsOpen', 'TopicController@isOpen');
             //设置推荐 &热门话题