albums()->latest()->paginate(40); $albums->getCollection()->each(function (Album $album) { $album->setVisible(['id', 'name', 'intro', 'image_num']); }); return $this->success('success', compact('albums')); } public function create(AlbumRequest $request): Response { /** @var User $user */ $user = Auth::user(); if ($user->albums()->create(array_filter($request->validated()))) { return $this->success('创建成功'); } return $this->fail('创建失败'); } public function update(AlbumRequest $request): Response { /** @var User $user */ $user = Auth::user(); $album = $user->albums()->find($request->route('id')); if (is_null($album)) { return $this->fail('不存在的相册'); } $album->update(array_filter($request->validated())); return $this->success('修改成功'); } public function delete(Request $request): Response { /** @var User $user */ $user = Auth::user(); /** @var Album|null $album */ $album = $user->albums()->find($request->route('id')); if (is_null($album)) { return $this->fail('不存在的相册'); } DB::transaction(function () use ($album) { $album->images()->update(['album_id' => null]); $album->delete(); }); return $this->success('删除成功'); } }