提交者
Gitee
!225 多选字段存储和编辑时按选择顺序存储及显示
Merge pull request !225 from HID丨emotion/adv_multi_order
正在显示
1 个修改的文件
包含
20 行增加
和
4 行删除
@@ -533,11 +533,27 @@ class Backend extends Controller | @@ -533,11 +533,27 @@ class Backend extends Controller | ||
533 | if (is_array($adminIds)) { | 533 | if (is_array($adminIds)) { |
534 | $this->model->where($this->dataLimitField, 'in', $adminIds); | 534 | $this->model->where($this->dataLimitField, 'in', $adminIds); |
535 | } | 535 | } |
536 | + | ||
536 | $fields = is_array($this->selectpageFields) ? $this->selectpageFields : ($this->selectpageFields && $this->selectpageFields != '*' ? explode(',', $this->selectpageFields) : []); | 537 | $fields = is_array($this->selectpageFields) ? $this->selectpageFields : ($this->selectpageFields && $this->selectpageFields != '*' ? explode(',', $this->selectpageFields) : []); |
537 | - $datalist = $this->model->where($where) | ||
538 | - ->order($order) | ||
539 | - ->page($page, $pagesize) | ||
540 | - ->select(); | 538 | + |
539 | + //如果有primaryvalue,说明当前是初始化传值,按照选择顺序排序 | ||
540 | + if ($primaryvalue !== null) { | ||
541 | + $primaryvalue = array_unique(is_array($primaryvalue) ? $primaryvalue : explode(',', $primaryvalue)); | ||
542 | + $primaryvalue = implode(',', array_map([$this->model->getConnection(), 'quote'], $primaryvalue)); | ||
543 | + | ||
544 | + $datalist = $this->model->where($where) | ||
545 | + ->orderRaw("FIELD(`{$primarykey}`, {$primaryvalue})") | ||
546 | + ->page($page, $pagesize) | ||
547 | + ->field($this->selectpageFields) | ||
548 | + ->select(); | ||
549 | + } else { | ||
550 | + $datalist = $this->model->where($where) | ||
551 | + ->order($order) | ||
552 | + ->page($page, $pagesize) | ||
553 | + ->field($this->selectpageFields) | ||
554 | + ->select(); | ||
555 | + } | ||
556 | + | ||
541 | foreach ($datalist as $index => $item) { | 557 | foreach ($datalist as $index => $item) { |
542 | unset($item['password'], $item['salt']); | 558 | unset($item['password'], $item['salt']); |
543 | if ($this->selectpageFields == '*') { | 559 | if ($this->selectpageFields == '*') { |
-
请 注册 或 登录 后发表评论