作者 Karson

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

优化后台列表逻辑
... ... @@ -8,33 +8,26 @@
$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);
}
... ...
... ... @@ -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
... ...
... ... @@ -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':
... ...