BatchEditEpisodeForm.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  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 BatchEditEpisodeForm 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']??null;
  25. foreach ($ids as $id){
  26. EpisodesList::where('id' , $id)->update([
  27. 'is_free' => $isFree,
  28. 'sale_price' => $salePrice,
  29. ]);
  30. }
  31. return $this->response()->success('修改成功')->refresh();
  32. }
  33. public function form()
  34. {
  35. $this->radio('is_free')
  36. ->options(config('global.episode_free'))
  37. ->when(0, function (Form $form) {
  38. $form->number('sale_price')->min(1);
  39. })->default(1);
  40. $this->hidden('id')->attribute('id','batch-id');
  41. }
  42. public function default()
  43. {
  44. }
  45. }