1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- <?php
- /**
- * Created by PhpStorm.
- * User: Administrator
- * Date: 2019-06-10
- * Time: 16:44
- */
- namespace App\Http\Controllers\V2;
- use App\Http\Controllers\Controller;
- use App\Repositories\TopicGroupRepository;
- use App\Transformers\DetailTopicGroupTransformer;
- use App\Transformers\DetailTopicTransformer;
- use App\Transformers\TopicGroupTransformer;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\Validator;
- use League\Fractal\Manager;
- use League\Fractal\Pagination\IlluminatePaginatorAdapter;
- use League\Fractal\Resource\Collection;
- use League\Fractal\Resource\Item;
- class TopicGroupController extends Controller {
- public function __construct(TopicGroupRepository $topicGroupRepository)
- {
- $this->topicGroupRepository = $topicGroupRepository;
- }
-
- //列表
- public function index(Request $request){
- $topicGroup = $this->topicGroupRepository->index($request->all());
- $fractal = new Manager();
- $resource = new Collection($topicGroup, new TopicGroupTransformer());
- $resource->setPaginator(new IlluminatePaginatorAdapter($topicGroup));
- $data = $fractal->createData($resource)->toArray();
- $data['extra'] = [
- 'filters' => [
- 'name',
- ],
- 'columns' => [
- 'id',
- 'name',
- 'img',
- 'created_at',
- 'is_suggest',
- 'topic_count',
- 'topic_list'
- ]
- ];
- return $data;
- }
- //创建
- public function create(Request $request){
- $data = $request->only('name','img','topic_ids','desc');
- $validator = Validator::make($data, [
- 'name' => 'required|string|max:12',
- 'topic_ids' => 'required|string',
- ]);
- if ($validator->fails()) {
- return $this->response->error($validator->errors()->first(), 500);
- }
- return $this->topicGroupRepository->create($data);
- }
- //修改
- public function edit(Request $request){
- $data = $request->only('id','name','img','topic_ids','desc');
- $validator = Validator::make($data, [
- 'name' => 'required|string|max:12',
- 'topic_ids' => 'required|string',
- ]);
- if ($validator->fails()) {
- return $this->response->error($validator->errors()->first(), 500);
- }
- return $this->topicGroupRepository->edit($data);
- }
- //详情
- public function view(Request $request){
- $data = $request->only('id','status');
- $validator = Validator::make($data, [
- 'id' => 'required|integer|max:12',
- ]);
- if ($validator->fails()) {
- return $this->response->error($validator->errors()->first(), 500);
- }
- $info = $this->topicGroupRepository->view($data);
- return $this->response->item($info, new DetailTopicGroupTransformer());
- }
- }
|