关于fastadmin中SelectPage的一些见解

时间:2023年07月02日

/

来源:网络

/

编辑:佚名

一、普通筛选
1.筛选莫个字段等于多少
js复制代码data-params='{"custom[status]":"normal","custom[type]":"1"}'
2.筛选莫个字段多条判断
js复制代码data-params='{"custom[status][0]":"2","custom[status][1]":"1"}'
二、联动筛选
注:需要在自己对应的js里面加在api里面bindevent方法里面
1.筛选当下面数据的值需要根据上面筛选的值做判断时
js复制代码$("#c-subject_child_id").data("params", function (obj) {
   return {custom: {pid : $("#c-subject_priend_id").val(),status : 1}};
});
1.如果有一些很难的条件建议写sql,这里需要自己更改代码 (有其它更好方法的大佬请不要喷我嘿嘿)
第一步:在 \app\common\controller\Backend 控制器中 selectpage方法中修改
 这是源代码:
js复制代码if ($custom && is_array($custom)) {
    foreach ($custom as $k => $v) {
        if (is_array($v) && 2 == count($v)) {
            $query->where($k, trim($v[0]), $v[1]);
        }else{
            $query->where($k, '=', $v);
        }
    }
}
 这是我改的代码:
bash复制代码if ($custom && is_array($custom)) {
    foreach ($custom as $k => $v) {
        if (is_array($v) && 2 == count($v)) {
            $query->where($k, trim($v[0]), $v[1]);
        } elseif($k == 'where') { //如果前端传where的话,就写原生sql
            $query->where($v);
        }else{
            $query->where($k, '=', $v);
        }
    }
}
然后在对应的js中直接写原生sql
javascript复制代码$("#c-school_ids").data("params", function (obj) {
    var subject_id = $("#c-subject_priend_id").val();
    if(subject_id){
        return {custom : { where :`FIND_IN_SET(${subject_id},subject_ids) AND status = 1`}};
    }
});
以上应该就能实现很多情况的筛选的,还有一个自定义显示数据格式,就需要自己去
fastadmin文档查看了
https://doc.fastadmin.net/doc/178.html
猜你需要

豫ICP备2021026617号-1  豫公网安备:41172602000185   Copyright © 2021-2028 www.78moban.com/ All Rights Reserved

本站作品均来自互联网,转载目的在于传递更多信息,并不代表本站赞同其观点和对其真实性负责。如有侵犯您的版权,请联系 1565229909#qq.com(把#改成@),我们将立即处理。