DistVideoCategoryController.php 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <?php
  2. namespace App\Distributor\Controllers;
  3. use App\Distributor\Repositories\DistVideo;
  4. use App\distributor\Repositories\DistVideoCategory;
  5. use Dcat\Admin\Form;
  6. use Dcat\Admin\Grid;
  7. use Dcat\Admin\Show;
  8. use Dcat\Admin\Http\Controllers\AdminController;
  9. use Dcat\Admin\Layout\Content;
  10. use Dcat\Admin\Admin;
  11. class DistVideoCategoryController extends AdminController
  12. {
  13. /**
  14. * page index
  15. */
  16. public function index(Content $content)
  17. {
  18. return $content
  19. ->header(admin_trans('admin.video_category'))
  20. ->description(admin_trans('admin.all'))
  21. ->breadcrumb(['text'=>'Video Category','url'=>''])
  22. ->body($this->grid());
  23. }
  24. /**
  25. * Make a grid builder.
  26. *
  27. * @return Grid
  28. */
  29. protected function grid()
  30. {
  31. return Grid::make(new DistVideoCategory(), function (Grid $grid) {
  32. $grid->model()->where('dist_id', getDistributorId());//这里限不了,改为仓库限制
  33. $grid->column('id')->sortable();
  34. $grid->column('name');
  35. //$grid->column('parent_id');
  36. $grid->column('order')->orderable();
  37. $grid->column('enabled')->switch();
  38. $grid->column('created_at');
  39. $grid->column('updated_at')->sortable();
  40. //$grid->quickSearch('name');
  41. //按钮
  42. $grid->disableViewButton();
  43. $grid->showQuickEditButton();
  44. $grid->enableDialogCreate();
  45. $grid->disableEditButton();
  46. //排序
  47. $grid->model()->orderBy('order', 'asc');
  48. });
  49. }
  50. /**
  51. * Make a form builder.
  52. *
  53. * @return Form
  54. */
  55. protected function form()
  56. {
  57. return Form::make(new DistVideoCategory(), function (Form $form) {
  58. $form->display('id');
  59. $form->text('name')->required();
  60. /*
  61. $form->select('parent_id', admin_trans_field('parent'))
  62. ->options([0 =>admin_trans_label('root')]) // 只显示 0 => root
  63. ->saving(function ($v) {
  64. return (int) $v;
  65. });
  66. */
  67. $form->switch('enabled')->default(1);
  68. $form->hidden('dist_id'); // 隐藏dist_id字段,用于保存
  69. $form->saving(function (Form $form) {
  70. $form->dist_id =getDistributorId();//保存时直接写死dist_id
  71. if (!$form->isCreating()) {
  72. // 验证主键 ID 的 dist_id 是否与 session 的 dist_id 一致
  73. $current = DistVideoCategory::findById($form->getKey());
  74. if ($current && $current->dist_id !== $form->dist_id) {
  75. throw new \Exception('Unable to modify the product because the distributor ID does not match.');
  76. }
  77. }
  78. });
  79. });
  80. }
  81. }