field("st.*,s.name") ->alias("st") ->join("site s","s.sassid = st.sassid") ->when(!empty($where),function ($query) use($where){ foreach ($where as $k=>$v) { if($v instanceof Closure) { $v($query); } else { if(is_array($v)) { //whereLike if($v[1] == 'whereLike') { if(!empty($v[0])) $query->whereLike($k,$v[0]); continue; } if($v[1] == 'whereBetween') { if(!empty($v[0])) $query->whereBetween($k,$v[0]); continue; } $bool = false; eval('$bool = '.$v[1].'($v[0]);'); if($bool) { $query->where($k,$v[0]); } } else { $query->where($k,$v); } } } }) ->order($desc) ->paginate(['list_rows'=>$pageCount,'page'=>$page]) ->toArray(); // echo $this->getLastSql(); return [$data['total'],$data['data']]; } }