Опции выбора (Select Options)
Опции выбора (Select options) — это предопределённые наборы опций, которые могут использоваться для полей select и multiselect.

Колонка «Name» необязательна, за исключением случаев, когда значение нельзя преобразовать в допустимый case PHP‑enum. Это касается значений, начинающихся с цифры или с некоторых символов. Имя опции может содержать только буквенно‑цифровые символы и символ подчёркивания.
Конфигурация поля
В настройках поля установите источник опций (options source) как «Select Options» и выберите один из наборов Select Options, созданных в админке.

Работа через PHP API
Ниже показано, как Pimcore генерирует поддерживаемый enum на основе конфигурации набора опций.
<?php
namespace Pimcore\Model\DataObject\SelectOptions;
enum TestOptions: string implements \App\SelectOptions\DataInterface, \App\SelectOptions\NameInterface
{
use \Pimcore\Model\DataObject\SelectOptions\Traits\EnumGetValuesTrait;
use \Pimcore\Model\DataObject\SelectOptions\Traits\EnumTryFromNullableTrait;
use \App\SelectOptions\DataTrait;
use \App\SelectOptions\NameTrait;
case Ten = 'ten';
case Twenty = '20';
case Check = 'â';
case C = '©';
case Multiple_Word_Value = 'Multiple Word Value';
public function getLabel(): string
{
return match ($this) {
self::Ten => '10',
self::Twenty => 'Twenty',
self::Check => 'â',
self::C => '©',
self::Multiple_Word_Value => 'Multiple Word Value',
};
}
}
Получение доступных значений опций
Метод, предоставляемый EnumGetValuesTrait.
TestOptions::getValues();
Преобразование значения select в enum
Метод, предоставляемый EnumTryFromNullableTrait.
$value = $product->getSelectField();
$testOption = TestOptions::tryFromNullable($value);
if ($testOption !== null) {
$label = $testOption->getLabel();
}
Вы можете предложить улучшение документации или задать вопрос в комментариях.
Если вам нужна полноценная консультация — вы можете заказать её на нашем сайте.