EpisodesCategoryController.php 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. <?php
  2. namespace App\Admin\Controllers\Episode;
  3. use App\Models\Episode;
  4. use App\Models\EpisodesCategory;
  5. use Dcat\Admin\Form;
  6. use Dcat\Admin\Grid;
  7. use Dcat\Admin\Http\Controllers\AdminController;
  8. class EpisodesCategoryController extends AdminController
  9. {
  10. public function destroy($id)
  11. {
  12. $childIds = EpisodesCategory::where('pid', $id)->get()->pluck('id');
  13. $childIds[] = $id;
  14. $hasEpisode = Episode::whereIn('category_id', $childIds)->count();
  15. if ($hasEpisode) {
  16. $form = new Form();
  17. $response = $form->response();
  18. return $response->error('当前分类或子分类存在短剧,前先删除短剧后再删除分类');
  19. }
  20. return $this->form()->destroy($id);
  21. }
  22. /**
  23. * Make a grid builder.
  24. *
  25. * @return Grid
  26. */
  27. protected function grid()
  28. {
  29. return Grid::make(new EpisodesCategory(), function (Grid $grid) {
  30. $grid->model()->orderByDesc('sort');
  31. $grid->column('id')->sortable();
  32. $grid->column('name');
  33. // $grid->column('level')->using(config('global.cat_level'));
  34. // $grid->column('pid','父分类')->display(function () {
  35. // /* @var EpisodesCategory $this*/
  36. // return $this->parent ?$this->parent->name : '';
  37. // });
  38. $grid->column('sort')->editable();
  39. // $grid->column('created_at');
  40. $grid->disableRowSelector();
  41. $grid->disableViewButton();
  42. });
  43. }
  44. /**
  45. * Make a form builder.
  46. *
  47. * @return Form
  48. */
  49. protected function form()
  50. {
  51. return Form::make(new EpisodesCategory(), function (Form $form) {
  52. $form->display('id');
  53. // $form->radio('level')
  54. // ->when(2, function (Form $form){
  55. // $options = EpisodesCategory::select(['id','name'])
  56. // ->where('level',1)
  57. // ->get()
  58. // ->pluck('name', 'id');
  59. // $form->select('pid')->options($options);
  60. // })
  61. // ->options(config('global.cat_level'))
  62. // ->default(1);
  63. $form->text('level')->value(1)->display(false);
  64. $form->text('name')->required();
  65. $form->number('sort');
  66. $form->disableViewButton();
  67. $form->disableDeleteButton();
  68. $form->disableListButton();
  69. $form->disableEditingCheck();
  70. $form->disableViewCheck();
  71. $form->disableCreatingCheck();
  72. });
  73. }
  74. }