fastadmin 列表查询去除where自定义条件

业务中碰到需要查询用户有多少条签到记录,但是并没有关联的情况下,直接查询会出现找不到字段的情况

list($where, $sort, $order, $offset, $limit) = $this->buildparams();
经过 buildparams 处理后不好修改
可以在 buildparams 之前处理

{field: 'time', title: __('时间区间'), visible: false, formatter: Table.api.formatter.datetime, operate: 'RANGE', addclass: 'datetimerange', sortable: true},

 在js添加完成以后 由于user表内没有time 会报错,只需要重写一个where即可

/**
     * 查看
     */
    public function index()
    {
        //设置过滤方法
        $this->request->filter(['strip_tags', 'trim']);
        if ($this->request->isAjax()) {
            //如果发送的来源是Selectpage,则转发到Selectpage
            if ($this->request->request('keyField')) {
                return $this->selectpage();
            }


            $filter = json_decode($this->request->get("filter", ''), true);
            $op = json_decode($this->request->get("op", '', 'trim'), true);

            if (isset($filter['time'])) {
                //自定义处理
                $time = explode(" - ", $filter['time']);
                //处理完可以去掉也可以覆盖重构
                unset($filter['time'], $op['time']);
            }

            $this->request->get(['filter' => json_encode($filter, true)]);
            $this->request->get(['op' => json_encode($op, true)]);

            list($where, $sort, $order, $offset, $limit) = $this->buildparams();

            $list = $this->model
                ->with(['group'])
                ->where($where)
                ->order($sort, $order)
                ->paginate($limit);

            foreach ($list as &$v) {
                $v->avatar = $v->avatar ? cdnurl($v->avatar, true) : letter_avatar($v->nickname);
                $v->hidden(['password', 'salt']);

                if (isset($time)) {
                    $v['clock'] = Sign::where(['uid' => $v['id']])->whereTime('createtime', 'between', [$time[0], $time[1]])->select();
                }
            }

            $result = array("total" => $list->total(), "rows" => $list->items());

            return json($result);
        }
        return $this->view->fetch();
    }

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值