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