filter($request->input()); $list = $query->simplePaginate(Paginator::resolvePerPage('per_page', 20, 50)); return $this->json(DeviceResource::collection($list)); } public function store(DeviceRequest $request) { $input = $request->input(); //如果不是监控设备,移除extends if ($input['type'] != DeviceType::Monitor->value) { unset($input['extends']); } Device::create(array_merge($input, [ 'created_by' => auth('api')->user()?->id ?? 0, 'updated_by' => auth('api')->user()?->id ?? 0, ])); return $this->success('添加成功'); } public function show(Device $device) { return $this->json(DeviceResource::make($device)); } public function update(Device $device, DeviceRequest $request) { $input = $request->input(); //如果不是监控设备,移除extends if ($input['type'] != DeviceType::Monitor->value) { $input['extends'] = null; } $device->update(array_merge($input, [ 'updated_by' => auth('api')->user()?->id ?? 0, ])); return $this->success('修改成功'); } public function destroy(Device $device) { $device->delete(); return $this->success('删除成功'); } public function types() { return $this->json(DeviceType::types()); } }