6 declare(strict_types=1);
16 as FieldTypeConverterInterface;
26 private $fieldTypeResolver;
31 private $fieldTypeConverter;
38 FieldTypeResolver $fieldTypeResolver,
39 FieldTypeConverterInterface $fieldTypeConverter
41 $this->fieldTypeResolver = $fieldTypeResolver;
42 $this->fieldTypeConverter = $fieldTypeConverter;
54 $fieldType = $this->fieldTypeResolver->getFieldType(
$attribute);
56 $frontendInput =
$attribute->getFrontendInput();
57 if (empty($context[
'type'])) {
60 if ($this->isStringServiceFieldType($fieldType)) {
68 $fieldName = $this->getQueryTypeFieldName($frontendInput, $fieldType,
$attributeCode);
82 private function isStringServiceFieldType(
string $serviceFieldType): bool
84 $stringTypeKey = $this->fieldTypeConverter->convert(FieldTypeConverterInterface::INTERNAL_DATA_TYPE_STRING);
86 return $serviceFieldType === $stringTypeKey;
97 private function getQueryTypeFieldName($frontendInput, $fieldType,
$attributeCode)
102 $fieldName = $this->getRefinedFieldName($frontendInput, $fieldType,
$attributeCode);
115 private function getRefinedFieldName($frontendInput, $fieldType,
$attributeCode)
117 $stringTypeKey = $this->fieldTypeConverter->convert(FieldTypeConverterInterface::INTERNAL_DATA_TYPE_STRING);
118 switch ($frontendInput) {
121 return in_array($fieldType, [$stringTypeKey,
'integer'],
true)
elseif(isset( $params[ 'redirect_parent']))
__construct(FieldTypeResolver $fieldTypeResolver, FieldTypeConverterInterface $fieldTypeConverter)
getFieldName(AttributeAdapter $attribute, $context=[])