BannerController.php 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <?php
  2. namespace App\Admin\Controllers\Program;
  3. use App\Models\Banner;
  4. use App\Models\Episode;
  5. use Dcat\Admin\Form;
  6. use Dcat\Admin\Grid;
  7. use Dcat\Admin\Show;
  8. use Dcat\Admin\Http\Controllers\AdminController;
  9. class BannerController extends AdminController
  10. {
  11. /**
  12. * Make a grid builder.
  13. *
  14. * @return Grid
  15. */
  16. protected function grid()
  17. {
  18. return Grid::make(Banner::with(['episode']), function (Grid $grid) {
  19. $grid->column('id')->sortable();
  20. // $grid->column('name')->editable();
  21. $grid->column('image')->image();
  22. $grid->column('episode_id', '跳转剧集')->display(function () {
  23. return $this->episode ? "<a href='/admin/episodes/index?name={$this->episode->name}'>{$this->episode->name}</a>" : '';
  24. });
  25. $grid->column('sort')->editable()->sortable();
  26. $grid->column('status')->switch('', true);
  27. $grid->disableViewButton();
  28. });
  29. }
  30. /**
  31. * Make a show builder.
  32. *
  33. * @return Show
  34. */
  35. protected function detail($id)
  36. {
  37. return Show::make($id, new Banner(), function (Show $show) {
  38. $show->field('id');
  39. $show->field('name');
  40. $show->field('image');
  41. $show->field('sort');
  42. $show->field('status');
  43. $show->field('created_at');
  44. $show->field('updated_at');
  45. });
  46. }
  47. /**
  48. * Make a form builder.
  49. *
  50. * @return Form
  51. */
  52. protected function form()
  53. {
  54. return Form::make(new Banner(), function (Form $form) {
  55. $form->display('id');
  56. // $form->text('name');
  57. $form->image('image', '轮播图(宽高比:2.7:1)')
  58. ->saveFullUrl()
  59. ->uniqueName()->autoUpload()
  60. ->autoSave(false)
  61. ->removable(false)
  62. ->width(4);
  63. $episode = Episode::select(['id', 'name'])->get()->toArray();
  64. $form->select('episode_id', '绑定剧集')
  65. ->options(array_column($episode, 'name', 'id'))
  66. ->required();
  67. $form->number('sort');
  68. $form->switch('status')->default(true);
  69. $form->disableDeleteButton();
  70. $form->disableViewButton();
  71. $form->disableViewCheck();
  72. $form->disableEditingCheck();
  73. $form->disableCreatingCheck();
  74. });
  75. }
  76. }