CategoryController.php 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: Administrator
  5. * Date: 2019-06-15
  6. * Time: 10:53
  7. */
  8. namespace App\Http\Controllers\V1;
  9. use App\Repositories\CategoryRepository;
  10. use App\Transformers\CategoryTransformer;
  11. use Illuminate\Http\Request;
  12. use Illuminate\Support\Facades\Validator;
  13. use League\Fractal\Manager;
  14. use League\Fractal\Pagination\IlluminatePaginatorAdapter;
  15. use League\Fractal\Resource\Collection;
  16. class CategoryController extends Controller {
  17. public function __construct(CategoryRepository $categoryRepository) {
  18. $this->categoryRepository = $categoryRepository;
  19. }
  20. //列表
  21. public function index(Request $request) {
  22. $categoryList = $this->categoryRepository->lists($request->all());
  23. $fractal = new Manager();
  24. $resource = new Collection($categoryList, new CategoryTransformer());
  25. $resource->setPaginator(new IlluminatePaginatorAdapter($categoryList));
  26. $data = $fractal->createData($resource)->toArray();
  27. return jsonSuccess($data);
  28. }
  29. //获取多个话题
  30. public function getTopics(Request $request){
  31. $data = $request->only('ids');
  32. $validator = Validator::make($data, [
  33. 'ids' => 'required|string',
  34. ]);
  35. if ($validator->fails()) {
  36. return jsonError($validator->errors()->first());
  37. }
  38. $categoryList = $this->categoryRepository->getTopics($data['ids']);
  39. return jsonSuccess($categoryList);
  40. }
  41. }