Browse Source

多选字段编辑时按选择顺序显示
多选字段选择多个时,再次编辑保持选择顺序不变

HID丨emotion 5 years ago
parent
commit
69d155b1d0
1 changed files with 15 additions and 5 deletions
  1. 15 5
      application/common/controller/Backend.php

+ 15 - 5
application/common/controller/Backend.php

@@ -494,11 +494,21 @@ class Backend extends Controller
             if (is_array($adminIds)) {
                 $this->model->where($this->dataLimitField, 'in', $adminIds);
             }
-            $datalist = $this->model->where($where)
-                ->order($order)
-                ->page($page, $pagesize)
-                ->field($this->selectpageFields)
-                ->select();
+            //如果有primaryvalue,说明当前是初始化传值,按照选择顺序排序
+            if ($primaryvalue !== null) {
+                $datalist = $this->model->where($where)
+                                        ->orderRaw("FIELD(`{$primarykey}`, {$primaryvalue})")
+                                        ->page($page, $pagesize)
+                                        ->field($this->selectpageFields)
+                                        ->select();
+            } else {
+                $datalist = $this->model->where($where)
+                                        ->order($order)
+                                        ->page($page, $pagesize)
+                                        ->field($this->selectpageFields)
+                                        ->select();
+            }
+
             foreach ($datalist as $index => $item) {
                 unset($item['password'], $item['salt']);
                 $list[] = [