selectField = [ 'id', 'user_id', 'title', 'cover', 'description', 'video_url', 'author_id', 'price', 'preferential_price', 'front', 'service', 'deploy', 'status', 'created_at', 'updated_at', 'deleted_at', ]; $this->model = ProjectModel::class; } /** * 获取项目列表 * @return array * @throws ContainerExceptionInterface * @throws NotFoundExceptionInterface */ public function list(): array { $this->with = [ 'frameworks:id,name', 'labels:id,name', // 'features:id,project_id,name' ]; return $this->getPageList(); } public function detail($id) { $this->with = [ 'frameworks:id,name', 'labels:id,name', 'features:id,project_id,name' ]; return $this->getDetail($id); } /** * 项目下拉列表 * @return mixed */ public function option() { $this->optionField = ['id', 'title']; return $this->getOption(); } /** * 创建项目 * @param $params * @return mixed * @throws Exception */ public function create($params): mixed { $params['user_id'] = $this->userId; $params['author_id'] = $params['author_id']?? $this->userId; // TODO 项目 $screenshots = $params['screenshots']; return $this->insert($params); } /** * 编辑项目 * @param $id * @param $params * @return mixed * @throws Exception */ public function update($id, $params): mixed { return $this->save($id, $params); } /** * 删除项目 * @param $ids * @return mixed|true * @throws Exception */ public function delete($ids): mixed { return $this->del($ids); } }