FarmSeedCopyAction.php 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. <?php
  2. namespace App\Module\Farm\AdminControllers\Actions;
  3. use App\Module\Farm\Models\FarmSeed;
  4. use Dcat\Admin\Grid\RowAction;
  5. use Illuminate\Http\Request;
  6. class FarmSeedCopyAction extends RowAction
  7. {
  8. protected $title = '复制';
  9. public function title()
  10. {
  11. return $this->title;
  12. }
  13. public function handle(Request $request)
  14. {
  15. try {
  16. $id = $this->getKey();
  17. // 查找原始记录
  18. $original = FarmSeed::findOrFail($id);
  19. // 创建新记录
  20. $new = $original->replicate();
  21. $new->name = $original->name . ' (复制)';
  22. $new->save();
  23. return $this->response()
  24. ->success("复制成功 [ID: {$new->id}]")
  25. ->refresh();
  26. } catch (\Exception $e) {
  27. return $this->response()
  28. ->error('复制失败: '.$e->getMessage());
  29. }
  30. }
  31. public function confirm()
  32. {
  33. return ['确定要复制此种子配置吗?', '复制操作将创建一个新的种子配置记录'];
  34. }
  35. }