eZ\Publish\Core\Search\Common\FieldNameResolver::getFieldNames PHP 메소드

getFieldNames() 공개 메소드

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.
또한 보기: eZ\Publish\API\Repository\Values\Content\Query\CustomFieldInterface
또한 보기: eZ\Publish\SPI\FieldType\Indexable
사용 중단: since 6.2, use getFieldTypes instead
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
리턴 string[]
    public function getFieldNames(Criterion $criterion, $fieldDefinitionIdentifier, $fieldTypeIdentifier = null, $name = null)
    {
        $fieldTypeNameMap = $this->getFieldTypes($criterion, $fieldDefinitionIdentifier, $fieldTypeIdentifier, $name);
        return array_keys($fieldTypeNameMap);
    }

Usage Example

예제 #1
0
파일: Tags.php 프로젝트: netgen/tagsbundle
 /**
  * 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));
 }
All Usage Examples Of eZ\Publish\Core\Search\Common\FieldNameResolver::getFieldNames