BatchEditEpisodeListForm.php 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <?php
  2. namespace App\Admin\Actions\Form;
  3. use App\Models\EpisodesList;
  4. use Dcat\Admin\Actions\Response;
  5. use Dcat\Admin\Contracts\LazyRenderable;
  6. use Dcat\Admin\Form\AbstractTool;
  7. use Dcat\Admin\Traits\HasPermissions;
  8. use Dcat\Admin\Traits\LazyWidget;
  9. use Dcat\Admin\Widgets\Form;
  10. use Illuminate\Contracts\Auth\Authenticatable;
  11. use Illuminate\Database\Eloquent\Model;
  12. use Illuminate\Http\Request;
  13. class BatchEditEpisodeListForm extends Form implements LazyRenderable
  14. {
  15. use LazyWidget;
  16. public function handle(array $input)
  17. {
  18. // 选择的行
  19. $ids = explode(',',$input['id']??null);
  20. if(empty($ids)){
  21. return $this->response()->error('参数错误');
  22. }
  23. $isFree = $input['is_free']??null;
  24. $salePrice = $input['sale_price']??0;
  25. $originPrice = $input['origin_price']??0;
  26. foreach ($ids as $id){
  27. EpisodesList::where('id' , $id)->update([
  28. 'is_free' => $isFree,
  29. 'sale_price' => $salePrice,
  30. 'origin_price' => $originPrice,
  31. ]);
  32. }
  33. return $this->response()->success('修改成功')->refresh();
  34. }
  35. public function form()
  36. {
  37. $this->radio('is_free')
  38. ->options(config('global.episode_free'))
  39. ->when(0, function (Form $form) {
  40. $form->number('origin_price')->min(1);
  41. $form->number('sale_price')->min(1);
  42. })->default(1);
  43. $this->hidden('id')->attribute('id','batch-id');
  44. }
  45. public function default()
  46. {
  47. }
  48. }