params['from'] ?? null; } /** * Get select items. */ public function getSelect(): array { return $this->params['select'] ?? []; } /** * Get order. */ public function getOrder(): array { return $this->params['orderBy'] ?? []; } /** * Whether is distinct. */ public function isDistinct(): bool { return $this->params['distinct'] ?? false; } /** * Get group by. */ public function getGroupBy(): array { return $this->params['orderBy'] ?? []; } public function getWhere(): ?WhereClause { $whereClause = $this->params['whereClause'] ?? null; if ($whereClause === null || $whereClause === []) { return null; } return WhereClause::fromRaw($whereClause); } private function validateRawParams(array $params): void { $this->validateRawParamsSelecting($params); if ( ( !empty($params['joins']) || !empty($params['leftJoins']) || !empty($params['whereClause']) || !empty($params['orderBy']) ) && empty($params['from']) && empty($params['fromQuery']) ) { throw new RuntimeException("Select params: Missing 'from'."); } } }