. **/ namespace Zabbix\Widgets\Fields; use Zabbix\Widgets\CWidgetField; class CWidgetFieldSelect extends CWidgetField { public const DEFAULT_VIEW = \CWidgetFieldSelectView::class; public const DEFAULT_VALUE = null; private array $values; /** * CSelect widget field. Can use both, string and integer type keys. * * @param array $values Key/value pairs of select option values. Key - saved in DB. Value - visible to user. */ public function __construct(string $name, string $label, array $values) { parent::__construct($name, $label); $this->values = $values; $this ->setDefault(self::DEFAULT_VALUE) ->setSaveType(ZBX_WIDGET_FIELD_TYPE_INT32); } public function getValues(): array { return $this->values; } protected function getValidationRules(bool $strict = false): array { return parent::getValidationRules($strict) + ['in' => implode(',', array_keys($this->values))]; } }