DistVideoCategoryController.php 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  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')->tree(true,true);
  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. }
  48. /**
  49. * Make a form builder.
  50. *
  51. * @return Form
  52. */
  53. protected function form()
  54. {
  55. return Form::make(new DistVideoCategory(), function (Form $form) {
  56. $form->display('id');
  57. $form->text('name')->required();
  58. $form->select('parent_id', admin_trans_field('parent'))
  59. ->options([0 =>admin_trans_label('root')]) // 只显示 0 => root
  60. ->saving(function ($v) {
  61. return (int) $v;
  62. });
  63. $form->switch('enabled')->default(1);
  64. $form->hidden('dist_id'); // 隐藏dist_id字段,用于保存
  65. $form->saving(function (Form $form) {
  66. $form->dist_id =getDistributorId();//保存时直接写死dist_id
  67. if (!$form->isCreating()) {
  68. // 验证主键 ID 的 dist_id 是否与 session 的 dist_id 一致
  69. $current = DistVideoCategory::findById($form->getKey());
  70. if ($current && $current->dist_id !== $form->dist_id) {
  71. throw new \Exception('Unable to modify the product because the distributor ID does not match.');
  72. }
  73. }
  74. });
  75. });
  76. }
  77. }