The method will check for custom fields if given $criterion implements
CustomFieldInterface. With optional parameters $fieldTypeIdentifier and
$name specific field type and field from its Indexable implementation
can be targeted.
public getFieldNames ( eZ\Publish\API\Repository\Values\Content\Query\Criterion $criterion, string $fieldDefinitionIdentifier, null | string $fieldTypeIdentifier = null, null | string $name = null ) : string[] | ||
$criterion | eZ\Publish\API\Repository\Values\Content\Query\Criterion | |
$fieldDefinitionIdentifier | string | |
$fieldTypeIdentifier | null | string | |
$name | null | string | |
return | string[] |
/** * Resolves the targeted fields for this criterion. * * @param \eZ\Publish\API\Repository\Values\Content\Query\Criterion $criterion * * @return array */ protected function getTargetFieldNames(Criterion $criterion) { if ($criterion->target != null) { return $this->fieldNameResolver->getFieldNames($criterion, $criterion->target, $this->fieldTypeIdentifier, $this->fieldName); } $targetFieldNames = array(); foreach ($this->contentTypeHandler->getSearchableFieldMap() as $fieldDefinitions) { foreach ($fieldDefinitions as $fieldIdentifier => $fieldDefinition) { if (!isset($fieldDefinition['field_type_identifier'])) { continue; } if ($fieldDefinition['field_type_identifier'] != $this->fieldTypeIdentifier) { continue; } $solrFieldNames = $this->fieldNameResolver->getFieldNames($criterion, $fieldIdentifier, $this->fieldTypeIdentifier, $this->fieldName); $targetFieldNames = array_merge($targetFieldNames, $solrFieldNames); } } return array_values(array_unique($targetFieldNames)); }
/** * Get field names * * @param \eZ\Publish\API\Repository\Values\Content\Query\Criterion $criterion * @param string $fieldDefinitionIdentifier * @param string $fieldTypeIdentifier * @param string $name * * @return array */ protected function getFieldNames(Criterion $criterion, $fieldDefinitionIdentifier, $fieldTypeIdentifier = null, $name = null) { return $this->fieldNameResolver->getFieldNames($criterion, $fieldDefinitionIdentifier, $fieldTypeIdentifier, $name); }
/** * Get field type information * * @param \eZ\Publish\API\Repository\Values\Content\Query\Criterion $criterion * @param string $fieldDefinitionIdentifier * * @return array */ protected function getFieldNames(Criterion $criterion, $fieldDefinitionIdentifier) { return $this->fieldNameResolver->getFieldNames($criterion, $fieldDefinitionIdentifier); }