query(); $query->select('tb_sms_favorite.*'); if($params->keyword) { switch ($params->field) { case 'tb_sms_favorite.id' : $query->where($params->field, '=', $params->keyword); break; case 'tb_sms_favorite.subject' : case 'tb_sms_favorite.content' : $query->where($params->field, 'LIKE', "%{$params->keyword}%"); break; } } $query->orderByDesc('tb_sms_favorite.id'); $list = $query->paginate($params->perPage, ['*'], 'page', $params->page); $total = $this->count(); $rows = $list->count(); return (object)[ 'total' => $total, 'rows' => $rows, 'list' => $list ]; } }