orderBy($target); } if ($order === static::ORDER_DESC) { $query->orderByDesc($target); } } protected function limit(Builder $query, array $condition, ?int $default = null) { $limit = data_get($condition, self::CONDITION_LIMIT, $default) ?? $default ?? static::MAX_LIMIT; $limit = min($limit, self::MAX_LIMIT); $query->limit($limit); } protected function where(Builder $query, array $condition, string $conditionKey, string|null $columnName = null): bool { $ret = data_get($condition, $conditionKey); if ($ret !== null) { $query->where($columnName ?? $conditionKey, $ret); return true; } else { return false; } } protected function whereIn(Builder $query, array $condition, string $conditionKey, string|null $columnName = null): bool { $ret = data_get($condition, $conditionKey); if ($ret !== null && is_array($ret)) { $query->whereIn($columnName ?? $conditionKey, $ret); return true; } else { return false; } } protected function makeColumnName(array $targets, ?string $as = null): string { $as = $as ? " as {$as}" : ""; return implode('.', $targets) . $as; } protected function makeColumnNameForSelect(array $targets, ?string $as = null): string { $as = $as ? " as {$as}" : " as " . Arr::last($targets); return implode('.', $targets) . $as; } }