ListsSortTrait.php 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | likeadmin快速开发前后端分离管理后台(PHP版)
  4. // +----------------------------------------------------------------------
  5. // | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
  6. // | 开源版本可自由商用,可去除界面版权logo
  7. // | gitee下载:https://gitee.com/likeshop_gitee/likeadmin
  8. // | github下载:https://github.com/likeshop-github/likeadmin
  9. // | 访问官网:https://www.likeadmin.cn
  10. // | likeadmin团队 版权所有 拥有最终解释权
  11. // +----------------------------------------------------------------------
  12. // | author: likeadminTeam
  13. // +----------------------------------------------------------------------
  14. namespace app\common\lists;
  15. trait ListsSortTrait
  16. {
  17. protected string $orderBy;
  18. protected string $field;
  19. /**
  20. * @notes 生成排序条件
  21. * @param $sortField
  22. * @param $defaultOrder
  23. * @return array|string[]
  24. * @author 令狐冲
  25. * @date 2021/7/16 00:06
  26. */
  27. private function createOrder($sortField, $defaultOrder)
  28. {
  29. if (empty($sortField) || empty($this->orderBy) || empty($this->field) || !in_array($this->field, array_keys($sortField))) {
  30. return $defaultOrder;
  31. }
  32. if (isset($sortField[$this->field])) {
  33. $field = $sortField[$this->field];
  34. } else {
  35. return $defaultOrder;
  36. }
  37. if ($this->orderBy == 'desc') {
  38. return [$field => 'desc'];
  39. }
  40. if ($this->orderBy == 'asc') {
  41. return [$field => 'asc'];
  42. }
  43. return $defaultOrder;
  44. }
  45. }