UsersRoleController.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. <?php
  2. namespace App\Admin\Controllers;
  3. use App\Models\User;
  4. use App\Models\UserRole;
  5. use Dcat\Admin\Form;
  6. use Dcat\Admin\Grid;
  7. use Dcat\Admin\Show;
  8. use Dcat\Admin\Http\Controllers\AdminController;
  9. class UsersRoleController extends AdminController
  10. {
  11. /**
  12. * Make a grid builder.
  13. *
  14. * @return Grid
  15. */
  16. protected function grid()
  17. {
  18. return Grid::make(new UserRole(), function (Grid $grid) {
  19. $grid->model()->with('userData')->orderByDesc('id');
  20. $grid->column('id')->sortable();
  21. $grid->column('userData.name','昵称');
  22. $grid->column('userData.avatar','头像')->image('',80,80);
  23. $grid->column('userData.mobile','手机号');
  24. $grid->column('name');
  25. $grid->column('sex');
  26. $grid->column('age');
  27. $grid->column('star');
  28. $grid->column('level','年级');
  29. $grid->column('created_at');
  30. $grid->column('updated_at')->sortable();
  31. $grid->disableCreateButton();
  32. $grid->disableViewButton();
  33. $grid->export() ->rows(function ($rows) {
  34. $exportRows = [];
  35. foreach ($rows as $index => $row) {
  36. // 确保 $row->userData 不为 null
  37. if ($row->userData !== null) {
  38. $user = $row->userData;
  39. $exportRow = [
  40. 'id' => $row->id,
  41. 'userData.name' => $user->name, // Add 'userData.name' to export
  42. 'userData.avatar' => $user->avatar, // Add 'userData.avatar' to export
  43. 'userData.mobile' => $user->mobile, // Add 'userData.avatar' to export
  44. 'name' => $row->name,
  45. 'sex' => $row->sex,
  46. 'age' => $row->age,
  47. 'star' => $row->star,
  48. 'level' => $row->level,
  49. 'created_at' => $row->created_at,
  50. 'updated_at' => $row->updated_at,
  51. ];
  52. $exportRows[] = $exportRow;
  53. }
  54. }
  55. // var_dump($exportRows);
  56. return collect($exportRows);
  57. });
  58. $grid->filter(function (Grid\Filter $filter) {
  59. $filter->panel();
  60. $filter->equal('level')->select(UserRole::$level);
  61. $filter->like('name');
  62. });
  63. });
  64. }
  65. /**
  66. * Make a show builder.
  67. *
  68. * @param mixed $id
  69. *
  70. * @return Show
  71. */
  72. protected function detail($id)
  73. {
  74. return Show::make($id, new UserRole(), function (Show $show) {
  75. $show->field('id');
  76. $show->field('user_id');
  77. $show->field('name');
  78. $show->field('sex');
  79. $show->field('age');
  80. $show->field('star');
  81. $show->field('level');
  82. $show->field('created_at');
  83. $show->field('updated_at');
  84. });
  85. }
  86. /**
  87. * Make a form builder.
  88. *
  89. * @return Form
  90. */
  91. protected function form()
  92. {
  93. return Form::make(new UserRole(), function (Form $form) {
  94. $form->display('id');
  95. // $form->text('user_id');
  96. $form->text('name');
  97. $form->select('sex')->options(['男孩' => '男孩','女孩' => '女孩']);
  98. $form->number('age');
  99. $form->text('star');
  100. $form->select('level')->options(UserRole::$level);
  101. $form->disableViewButton();
  102. $form->display('created_at');
  103. $form->display('updated_at');
  104. });
  105. }
  106. }