CourseController.php 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <?php
  2. namespace App\Admin\Controllers;
  3. use App\Admin\Actions\Course\CourseHoles;
  4. use App\Models\Course;
  5. use App\Models\CourseField as CourseFieldModel;
  6. use Dcat\Admin\Form;
  7. use Dcat\Admin\Grid;
  8. use Dcat\Admin\Http\Controllers\AdminController;
  9. class CourseController extends AdminController
  10. {
  11. /**
  12. * Make a grid builder.
  13. *
  14. * @return Grid
  15. */
  16. protected function grid()
  17. {
  18. $grid = new Grid(new Course());
  19. $grid->model()->orderByDesc('id');
  20. $grid->column('id')->sortable();
  21. $grid->column('img')->image('', 50);
  22. $grid->column('name');
  23. $grid->column('course_field', '场地数')->display(function (){
  24. $fieldCount = CourseFieldModel::where('course_id', $this->id)->count();
  25. $url = admin_url('/course_field?course_id='.$this->id.'');
  26. $html = $fieldCount.'<a href="'.$url.'"> 查看</a>';
  27. return $html;
  28. });
  29. $grid->column('photos')->display(function ($photos) {
  30. return json_decode($photos, true);
  31. })->image('', 60, 60);
  32. $grid->column('address');
  33. $grid->column('contacts_phone');
  34. $grid->column('style');
  35. $grid->filter(function (Grid\Filter $filter) {
  36. $filter->panel();
  37. $filter->equal('id')->width(4);
  38. $filter->equal('course_id')->width(4);
  39. });
  40. $grid->disableViewButton();
  41. return $grid;
  42. }
  43. /**
  44. * Make a form builder.
  45. *
  46. * @return Form
  47. */
  48. protected function form()
  49. {
  50. return Form::make(Course::with('course_fileds'), function (Form $form) {
  51. $form->column(5, function (Form $form) {
  52. $form->width(10, 2);
  53. $form->display('id');
  54. $form->text('name')->required();
  55. $form->image('img')->removable(true)->uniqueName()->saveFullUrl()->autoUpload()->required();
  56. $form->map('lat', 'lng', trans('course.fields.address'))->required();
  57. });
  58. $form->column(7, function (Form $form) {
  59. $form->width(10, 2);
  60. $form->text('contacts_phone');
  61. $form->time('open_time')->format('HH:mm')->default('09:00', true);
  62. $form->time('close_time')->format('HH:mm')->default('18:00', true);
  63. $form->text('style');
  64. $form->textarea('service');
  65. $form->number('square');
  66. $form->number('length');
  67. $form->multipleImage('photos')->saveFullUrl()->autoUpload()->uniqueName()->saveAsJson();
  68. });
  69. $form->disableViewButton();
  70. $form->footer(function ($footer) {
  71. // 去掉`查看`checkbox
  72. $footer->disableViewCheck();
  73. // 去掉`继续编辑`checkbox
  74. $footer->disableEditingCheck();
  75. // 去掉`继续创建`checkbox
  76. $footer->disableCreatingCheck();
  77. });
  78. });
  79. }
  80. }