filter($request->all()) ->latest('id') ->paginate(20); return MaterielResource::collection($materiels); } /** * 创建物资 * * @param \App\Http\Requestes\MaterielStoreRequest $request * @return \App\Http\Resources\MaterielResource * * @throws \App\Exceptions\BizException */ public function store(MaterielStoreRequest $request): MaterielResource { $user = $request->user(); $materiel = new Materiel( $request->only([ 'name', 'type', 'year', 'quarter', 'lowest_price', 'highest_price', ]) ); $materiel->created_by = $user->id; $materiel->updated_by = $user->id; $materiel->save(); return MaterielResource::make( $materiel->setRelations([ 'createdBy' => $user, 'updatedBy' => $user, ]) ); } /** * 修改物资 * * @param int $id * @param \App\Http\Requestes\MaterielUpdateRequest $request * @return \App\Http\Resources\RiceShrimpIndustryResource */ public function update($id, MaterielUpdateRequest $request): MaterielResource { $materiel = Materiel::findOrFail($id); foreach ([ 'name', 'type', 'year', 'quarter', 'lowest_price', 'highest_price', ] as $key) { if ($request->filled($key)) { $materiel->{$key} = $request->input($key); } } if ($materiel->isDirty()) { $materiel->updated_by = $request->user()->id; } $materiel->save(); return Materiel::make( $materiel->loadMissing(['createdBy', 'updatedBy']) ); } /** * 删除物资 * * @param int $id * @return \Illuminate\Http\JsonResponse */ public function destroy($id): JsonResponse { $materiel = Materiel::findOrFail($id); $materiel->delete(); return response()->json(null); } }