/** * @param string $entityClass * @param QueryBuilder $qb * @param string $fieldName * @return string */ public function getFieldExpr($entityClass, QueryBuilder $qb, $fieldName) { if ($this->virtualFieldProvider->isVirtualField($entityClass, $fieldName)) { return $this->getVirtualFieldExpression($qb, $entityClass, $fieldName); } return sprintf('%s.%s', $this->getRootTableAlias($qb), $fieldName); }
/** * Gets a field data type * * @param string $className * @param string $fieldName * * @return string */ protected function getFieldType($className, $fieldName) { $result = null; if ($this->virtualFieldProvider->isVirtualField($className, $fieldName)) { // try to guess virtual column type $key = sprintf('%s::%s', $className, $fieldName); if (isset($this->virtualColumnOptions[$key]['return_type'])) { $result = $this->virtualColumnOptions[$key]['return_type']; } } return $result; }