前書き#
FastAdmin のテーブルのカスタム検索では、時々$where 条件を再構築する必要があります。
list($where, $sort, $order, $offset, $limit) = $this->buildparams();
buildparams の処理後は変更が難しいです。
buildparams の前に処理することができます。
以下には、PHP と JS の 2 つの処理方法を記録しています。
方法 1 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)]);
方法 2 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;
},
})