/** * @param Criteria $criteria * * @return string[] */ protected function getFields(Criteria $criteria) { $fields = []; $whereExpr = $criteria->getWhereExpression(); if ($whereExpr) { $visitor = new FieldVisitor(); $visitor->dispatch($whereExpr); $fields = $visitor->getFields(); } $orderBy = $criteria->getOrderings(); if (!empty($orderBy)) { foreach ($orderBy as $field => $direction) { if (!in_array($field, $fields, true)) { $fields[] = $field; } } } return $fields; }