service = new PostService(); } /** * 创建 * * @param Request $request 请求对象 * @return mixed 返回创建成功的数据或信息 */ public function store(Request $request) { try { $data = $this->validate($this->service->getValidator(), $request->post(), 'store'); $res = $this->service->serviceStore($request, $data); return $this->success($res, '创建成功'); } catch (\Throwable $e) { return $this->error($e->getMessage().$e->getLine().$e->getFile()); } } /** * 列表页数据格式化 * * @param array $data * @return array */ protected function indexFormat($data) { if (isset($data['created_at'])) $data['created_at'] = date('Y-m-d H:i:s', $data['created_at']); if (isset($data['updated_at'])) $data['updated_at'] = date('Y-m-d H:i:s', $data['updated_at']); if (isset($data['id'])) $data['media'] = PostMedia::where('post_id', $data['id'])->get(); if (isset($data['category_id'])) $data['category_name'] = PostCategory::where('id', $data['category_id'])->value('name')??''; $ossservice = new OssService(); if (isset($data['id'])){ $data['media'] = PostMedia::where('post_id', $data['id'])->get()->toArray(); foreach ($data['media'] as &$media) { $media['url_pull'] = $ossservice->generatePrivateUrl($media['url']); } } if (isset($data['user_id'])){ $data['user'] = User::where('id', $data['user_id'])->first(); unset($data['user']['password']); $data['user']['avatar_pull'] = $data['user']['avatar']; if(!str_contains($data['user']['avatar'], 'http') && !empty($data['user']['avatar'])){ $data['user']['avatar_pull'] = $ossservice->generatePrivateUrl($data['user']['avatar']); } } return $data; } /** * 列表页数据格式化 * * @param array $data * @return array */ protected function showFormat($data) { if (isset($data['created_at'])) $data['created_at'] = date('Y-m-d H:i:s', $data['created_at']); if (isset($data['updated_at'])) $data['updated_at'] = date('Y-m-d H:i:s', $data['updated_at']); if (isset($data['id'])) $data['media'] = PostMedia::where('post_id', $data['id'])->get(); if (isset($data['category_id'])) $data['category_name'] = PostCategory::where('id', $data['category_id'])->value('name')??''; $ossservice = new OssService(); if (isset($data['id'])){ $data['media'] = PostMedia::where('post_id', $data['id'])->get()->toArray(); foreach ($data['media'] as &$media) { $media['url_pull'] = $ossservice->generatePrivateUrl($media['url']); } } if (isset($data['user_id'])){ $data['user'] = User::where('id', $data['user_id'])->first(); unset($data['user']['password']); $data['user']['avatar_pull'] = $data['user']['avatar']; if(!str_contains($data['user']['avatar'], 'http') && !empty($data['user']['avatar'])){ $data['user']['avatar_pull'] = $ossservice->generatePrivateUrl($data['user']['avatar']); } } return $data; } }