$value) { if ($key === '_sort_field' || $key === '_sort_order') { continue; } if (is_array($value) && count($value) === 3) { $query->where($key, $value[0], $value[1]); } else { $query->where($key, $value); } } // 应用排序 if (isset($where['_sort_field']) && isset($where['_sort_order'])) { $query->orderBy($where['_sort_field'], $where['_sort_order']); } else { // 默认按ID降序排列 $query->orderBy('id', 'desc'); } return $query->paginate($limit, ['*'], 'page', $page); } /** * 根据条件查询单条记录 * * @param array $where 查询条件 * @return FriendRelation|null */ public function findByWhere(array $where): ?FriendRelation { $query = FriendRelation::query(); foreach ($where as $key => $value) { if (is_array($value) && count($value) === 3) { $query->where($key, $value[0], $value[1]); } else { $query->where($key, $value); } } return $query->first(); } /** * 根据条件统计记录数 * * @param array $where 查询条件 * @return int */ public function countByWhere(array $where): int { $query = FriendRelation::query(); foreach ($where as $key => $value) { if (is_array($value) && count($value) === 3) { $query->where($key, $value[0], $value[1]); } else { $query->where($key, $value); } } return $query->count(); } }