postRepository = $postRepository; } /** * 内容列表 */ public function index(Request $request) { $productList = $this->postRepository->lists($request->all()); $fractal = new Manager(); $resource = new Collection($productList, new PostTransformer()); $resource->setPaginator(new IlluminatePaginatorAdapter($productList)); $data = $fractal->createData($resource)->toArray(); $data['extra'] = [ 'filters' => [ 'keyword', 'content', 'topic_ids', 'category_ids', 'is_suggest', 'created_at', 'type', 'sort' ], 'columns' => [ 'id', 'created_at', 'uid', 'topic', 'content', 'location', 'pv', 'praise_count', 'share_count', 'comment_count', 'collect_count', 'create_bean', 'is_suggest' ] ]; return $data; } /** * 发布内容 */ public function create(Request $request) { $validator = Validator::make($request->all(), [ 'uid' => 'required|integer', 'type' => ['required',Rule::in('image', 'video', 'html')], 'is_suggest' => ['required',Rule::in(0, 1)], 'img' => 'required|url', 'video' => 'required_if:type,video|string|url', 'topic_ids' => 'required|string|max:64', 'title' => 'nullable|string|max:20', 'content' => 'required|string|max:20', 'location' => 'required|string', 'imgs' => 'required_if:type,image|array|max:9', 'imgs.*' => 'required|url', ]); if ($validator->fails()) { return $this->response->error($validator->errors()->first(), 500); } return $this->postRepository->create($request->all()); } }