From a2d99f4bdbd9593c9fc81b4457dbc5cb5b3c1609 Mon Sep 17 00:00:00 2001 From: Karson <karsonzhang@163.com> Date: Fri, 11 Sep 2020 14:10:59 +0800 Subject: [PATCH] 修复关联字段时间无法搜索的BUG 优化后台列表逻辑 --- application/admin/command/Crud/stubs/controllerindex.stub | 19 ++++++------------- application/admin/library/traits/Backend.php | 11 +++-------- application/common/controller/Backend.php | 6 ++++++ 3 files changed, 15 insertions(+), 21 deletions(-) diff --git a/application/admin/command/Crud/stubs/controllerindex.stub b/application/admin/command/Crud/stubs/controllerindex.stub index 74470ca..a3cfa54 100755 --- a/application/admin/command/Crud/stubs/controllerindex.stub +++ b/application/admin/command/Crud/stubs/controllerindex.stub @@ -8,35 +8,28 @@ $this->relationSearch = {%relationSearch%}; //设置过滤方法 $this->request->filter(['strip_tags', 'trim']); - if ($this->request->isAjax()) - { + if ($this->request->isAjax()) { //如果发送的来源是Selectpage,则转发到Selectpage - if ($this->request->request('keyField')) - { + if ($this->request->request('keyField')) { return $this->selectpage(); } list($where, $sort, $order, $offset, $limit) = $this->buildparams(); - $total = $this->model - {%relationWithList%} - ->where($where) - ->order($sort, $order) - ->count(); $list = $this->model {%relationWithList%} ->where($where) ->order($sort, $order) ->limit($offset, $limit) - ->select(); + ->paginate(); foreach ($list as $row) { {%visibleFieldList%} {%relationVisibleFieldList%} } - $list = collection($list)->toArray(); - $result = array("total" => $total, "rows" => $list); + + $result = array("total" => $list->total(), "rows" => $list->items()); return json($result); } return $this->view->fetch(); - } \ No newline at end of file + } diff --git a/application/admin/library/traits/Backend.php b/application/admin/library/traits/Backend.php index 6b8450d..3192c9f 100755 --- a/application/admin/library/traits/Backend.php +++ b/application/admin/library/traits/Backend.php @@ -50,19 +50,14 @@ trait Backend return $this->selectpage(); } list($where, $sort, $order, $offset, $limit) = $this->buildparams(); - $total = $this->model - ->where($where) - ->order($sort, $order) - ->count(); $list = $this->model ->where($where) ->order($sort, $order) ->limit($offset, $limit) - ->select(); + ->paginate(); - $list = collection($list)->toArray(); - $result = array("total" => $total, "rows" => $list); + $result = array("total" => $list->total(), "rows" => $list->items()); return json($result); } @@ -75,7 +70,7 @@ trait Backend public function recyclebin() { //设置过滤方法 - $this->request->filter(['strip_tags']); + $this->request->filter(['strip_tags', 'trim']); if ($this->request->isAjax()) { list($where, $sort, $order, $offset, $limit) = $this->buildparams(); $total = $this->model diff --git a/application/common/controller/Backend.php b/application/common/controller/Backend.php index 76d4ee8..88f1e0f 100644 --- a/application/common/controller/Backend.php +++ b/application/common/controller/Backend.php @@ -377,6 +377,12 @@ class Backend extends Controller $sym = $sym == 'RANGE' ? '>=' : '<'; $arr = $arr[0]; } + $tableArr = explode('.', $k); + if (count($tableArr) > 1) { + //修复关联模型下时间无法搜索的BUG + $relation = Loader::parseName($tableArr[0], 1, false); + $this->model->alias([$this->model->$relation()->getTable() => $tableArr[0]]); + } $where[] = [$k, str_replace('RANGE', 'BETWEEN', $sym) . ' time', $arr]; break; case 'NULL': -- libgit2 0.24.0