修复关联字段时间无法搜索的BUG

优化后台列表逻辑
pull/236/head
Karson 2020-09-11 14:10:59 +08:00
parent 8b772d30cd
commit a2d99f4bdb
3 changed files with 15 additions and 21 deletions

View File

@ -8,35 +8,28 @@
$this->relationSearch = {%relationSearch%}; $this->relationSearch = {%relationSearch%};
//设置过滤方法 //设置过滤方法
$this->request->filter(['strip_tags', 'trim']); $this->request->filter(['strip_tags', 'trim']);
if ($this->request->isAjax()) if ($this->request->isAjax()) {
{
//如果发送的来源是Selectpage则转发到Selectpage //如果发送的来源是Selectpage则转发到Selectpage
if ($this->request->request('keyField')) if ($this->request->request('keyField')) {
{
return $this->selectpage(); return $this->selectpage();
} }
list($where, $sort, $order, $offset, $limit) = $this->buildparams(); list($where, $sort, $order, $offset, $limit) = $this->buildparams();
$total = $this->model
{%relationWithList%}
->where($where)
->order($sort, $order)
->count();
$list = $this->model $list = $this->model
{%relationWithList%} {%relationWithList%}
->where($where) ->where($where)
->order($sort, $order) ->order($sort, $order)
->limit($offset, $limit) ->limit($offset, $limit)
->select(); ->paginate();
foreach ($list as $row) { foreach ($list as $row) {
{%visibleFieldList%} {%visibleFieldList%}
{%relationVisibleFieldList%} {%relationVisibleFieldList%}
} }
$list = collection($list)->toArray();
$result = array("total" => $total, "rows" => $list); $result = array("total" => $list->total(), "rows" => $list->items());
return json($result); return json($result);
} }
return $this->view->fetch(); return $this->view->fetch();
} }

View File

@ -50,19 +50,14 @@ trait Backend
return $this->selectpage(); return $this->selectpage();
} }
list($where, $sort, $order, $offset, $limit) = $this->buildparams(); list($where, $sort, $order, $offset, $limit) = $this->buildparams();
$total = $this->model
->where($where)
->order($sort, $order)
->count();
$list = $this->model $list = $this->model
->where($where) ->where($where)
->order($sort, $order) ->order($sort, $order)
->limit($offset, $limit) ->limit($offset, $limit)
->select(); ->paginate();
$list = collection($list)->toArray(); $result = array("total" => $list->total(), "rows" => $list->items());
$result = array("total" => $total, "rows" => $list);
return json($result); return json($result);
} }
@ -75,7 +70,7 @@ trait Backend
public function recyclebin() public function recyclebin()
{ {
//设置过滤方法 //设置过滤方法
$this->request->filter(['strip_tags']); $this->request->filter(['strip_tags', 'trim']);
if ($this->request->isAjax()) { if ($this->request->isAjax()) {
list($where, $sort, $order, $offset, $limit) = $this->buildparams(); list($where, $sort, $order, $offset, $limit) = $this->buildparams();
$total = $this->model $total = $this->model

View File

@ -377,6 +377,12 @@ class Backend extends Controller
$sym = $sym == 'RANGE' ? '>=' : '<'; $sym = $sym == 'RANGE' ? '>=' : '<';
$arr = $arr[0]; $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]; $where[] = [$k, str_replace('RANGE', 'BETWEEN', $sym) . ' time', $arr];
break; break;
case 'NULL': case 'NULL':