复制'; /** * 处理请求 * * @param Request $request * @return \Dcat\Admin\Actions\Response */ public function handle(Request $request) { try { // 获取当前行ID $id = $this->getKey(); // 查找原分解规则 $originalRule = ItemDismantleRule::find($id); if (!$originalRule) { return $this->response()->error('分解规则不存在'); } // 复制规则 $newRule = $originalRule->replicate(); $newRule->name = $originalRule->name . ' (复制)'; $newRule->code = $originalRule->code . '_copy_' . time(); // 确保编码唯一 $newRule->is_active = false; // 复制的规则默认为未激活状态 $newRule->save(); // 跳转到编辑页面,让用户修改配置 return $this->response() ->success("已成功复制分解规则 [{$originalRule->name}] (ID: {$newRule->id})") ->redirect(admin_url("game-items-dismantle-rules/{$newRule->id}/edit")); } catch (\Exception $e) { return $this->response() ->error('复制失败: ' . $e->getMessage()); } } /** * 确认信息 * * @return array|string|void */ public function confirm() { return ['确定要复制此分解规则吗?', '复制操作将创建一个新的分解规则记录,并跳转到编辑页面']; } }