SeleteFeedback.php 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <?php
  2. namespace App\Admin\Selectable;
  3. use App\Models\Feedback;
  4. use App\Models\Tag;
  5. use Encore\Admin\Grid\Filter;
  6. use Encore\Admin\Grid\Selectable;
  7. class SeleteFeedback extends Selectable
  8. {
  9. public $model = Feedback::class;
  10. public function make()
  11. {
  12. $this->column('id');
  13. $this->column('content');
  14. $this->column('handler');
  15. $this->column('mobile', '头像');
  16. $this->column('created_time');
  17. $this->filter(function (Filter $filter) {
  18. $filter->like('content');
  19. });
  20. }
  21. public static function display(){
  22. return function ($value) {
  23. // 如果`$value`是数组,表示在`collaborators`列中使用,显示用分号`;`分隔的用户`name`字段
  24. if (is_array($value)) {
  25. return implode(';', array_column($value, 'name'));
  26. }
  27. // 否则为`author_id`列使用,直接显示用户的`name`字段
  28. return optional($this->author)->name;
  29. };
  30. }
  31. }
  32. class SeleteTag extends Selectable
  33. {
  34. public $model = Tag::class;
  35. public function make()
  36. {
  37. $this->column('id');
  38. $this->column('name');
  39. $this->filter(function (Filter $filter) {
  40. $filter->like('name');
  41. });
  42. }
  43. public static function display(){
  44. return function ($value) {
  45. // 如果`$value`是数组,表示在`collaborators`列中使用,显示用分号`;`分隔的用户`name`字段
  46. if (is_array($value)) {
  47. return implode(';', array_column($value, 'name'));
  48. }
  49. // 否则为`author_id`列使用,直接显示用户的`name`字段
  50. return optional($this->author)->name;
  51. };
  52. }
  53. }