relationLoaded('tags')) { // 将模型转换为数组,并处理tags字段 $data = $model->toArray(); $data['tags'] = $model->tags->pluck('id')->toArray(); return $data; } return $model; } /** * 复制奖励组 * * @param int $id 奖励组ID * @return GameRewardGroup */ public function duplicate(int $id): GameRewardGroup { $group = $this->eloquentClass::with('rewardItems')->findOrFail($id); // 复制奖励组 $newGroup = $group->replicate(); $newGroup->name = $group->name . ' (复制)'; $newGroup->code = $group->code . '_copy_' . time(); $newGroup->save(); // 复制奖励项 foreach ($group->rewardItems as $item) { $newItem = $item->replicate(); $newItem->group_id = $newGroup->id; $newItem->save(); } return $newGroup; } }