前言#
FastAdmin 中的 table 自定義搜索,有時候需要重構 where 條件
list($where, $sort, $order, $offset, $limit) = $this->buildparams();
經過 buildparams 處理後不好修改
可以在 buildparams 之前處理
下面記錄 php 和 js 兩種處理方式
方式一 php#
$filter = json_decode($this->request->get("filter", ''), true);
$op = json_decode($this->request->get("op", '','trim'), true);
$where0 = [];
if (isset($filter['groupIds'])) {
//自定義處理
//處理完可以去掉也可以覆蓋重構
unset($filter['groupIds'],$op['groupIds']);
}
$this->request->get(['filter'=>json_encode($filter,true)]);
$this->request->get(['op'=>json_encode($op,true)]);
方式二 js#
table.bootstrapTable({
//省略...
queryParams: function (params) {
let filter = JSON.parse(params.filter);
let op = JSON.parse(params.op);
//重構搜索條件
filter['game.game_mode'] = 0;
filter['game.play_mode'] = 0;
op['game.game_mode'] = '=';
op['game.play_mode'] = '=';
params.filter = JSON.stringify(filter);
params.op = JSON.stringify(op);
console.log(params);
return params;
},
})