amber

amber

FastAdmin 個人記録 - $where 条件の再構築

前書き#

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;
    },
})
読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。