Класс SelectBoxWidget
Класс виджета ввода для создания выпадающего списка.
Этот класс обычно используется внутри Cake\View\Helper\FormHelper, но также может быть использован для создания независимых выпадающих списков.
Краткое описание свойств
- $_templates protected
Cake\View\StringTemplateЭкземпляр StringTemplate.
- $defaults protected
array<string, mixed>Значения по умолчанию.
Краткое описание методов
-
__construct() public
Конструктор.
-
_emptyValue() protected
Генерирует пустое значение на основе ввода.
-
_isDisabled() protected
Вспомогательный метод для определения отключенных опций.
-
_isSelected() protected
Вспомогательный метод для определения выбранных опций.
-
_renderContent() protected
Отображает содержимое элемента select.
-
_renderOptgroup() protected
Отображает содержимое элемента optgroup.
-
_renderOptions() protected
Отображает набор опций.
-
mergeDefaults() protected
Объединяет значения по умолчанию со значениями данных.
-
render() public
Отображает элемент ввода выпадающего списка.
-
secureFields() public
Возвращает список полей, которые нужно защитить для этого виджета.
-
setMaxLength() protected
Устанавливает значение атрибута "maxlength", если применимо.
-
setRequired() protected
Устанавливает значение атрибута "required", если применимо.
-
setStep() protected
Устанавливает значение атрибута "step", если применимо.
Подробное описание методов
__construct() public
__construct(Cake\View\StringTemplate $templates)
Конструктор.
Параметры
-
Cake\View\StringTemplate$templates Список шаблонов.
_emptyValue() protected
_emptyValue(array|string|bool $value): array
Генерирует пустое значение на основе входных данных.
Параметры
-
array|string|bool$value Предоставленное пустое значение.
Возвращает
array_isDisabled() protected
_isDisabled(string $key, array<string>|null $disabled): bool
Вспомогательный метод для определения, какие опции отключены.
Параметры
-
string$key Ключ для проверки.
-
array<string>|null$disabled Отключенные значения.
Возвращает
bool_isSelected() protected
_isSelected(string $key, array<string>|string|int|false|null $selected): bool
Вспомогательный метод для определения, какие опции выбраны.
Параметры
-
string$key Ключ для проверки.
-
array<string>|string|int|false|null$selected Выбранные значения.
Возвращает
bool_renderContent() protected
_renderContent(array<string, mixed> $data): array<string>
Отображает содержимое элемента select.
Параметры
-
array<string, mixed>$data Контекст для рендеринга select.
Возвращает
array<string>_renderOptgroup() protected
_renderOptgroup(string $label, ArrayAccess|array $optgroup, array|null $disabled, array|string|null $selected, array $templateVars, bool $escape): string
Отображает содержимое элемента optgroup.
Параметры
-
string$label Текст метки optgroup.
-
ArrayAccess|array$optgroup Данные группы опций.
-
array|null$disabled Опции для отключения.
-
array|string|null$selected Опции для выбора.
-
array$templateVars Дополнительные переменные шаблона.
-
bool$escape Включить/выключить экранирование HTML.
Возвращает
string_renderOptions() protected
_renderOptions(iterable $options, array<string>|null $disabled, array|string|null $selected, array $templateVars, bool $escape): array<string>
Отображает набор опций.
Будет рекурсивно вызывать себя, если используются группы опций.
Параметры
-
iterable$options Опции для отображения.
-
array<string>|null$disabled Опции для отключения.
-
array|string|null$selected Опции для выбора.
-
array$templateVars Дополнительные переменные шаблона.
-
bool$escape Включить/выключить экранирование HTML.
Возвращает
array<string>mergeDefaults() protected
mergeDefaults(array<string, mixed> $data, Cake\View\Form\ContextInterface $context): array<string, mixed>
Объединяет значения по умолчанию с предоставленными данными.
Параметры
-
array<string, mixed>$data Массив данных
-
Cake\View\Form\ContextInterface$context Экземпляр контекста.
Возвращает
array<string, mixed>render() public
render(array<string, mixed> $data, Cake\View\Form\ContextInterface $context): string
Отображает элемент формы select.
Отображает элемент select на основе набора данных. Поддерживаемые ключи:
-
name- Устанавливает имя входного поля. -
options- Массив опций. -
disabled- true или массив опций для отключения. Если true, элемент select будет отключен. -
val- Строка или массив опций для выбора. -
empty- Устанавливает значение true для добавления пустой опции вверху элементов опций. Если используется строка, устанавливается отображаемый текст пустой опции. Если используется массив, ключ устанавливает значение пустой опции, а значение — отображаемый текст. -
escape- Устанавливается в false для отключения экранирования HTML.
Формат опций
Параметр options может принимать различные форматы данных в зависимости от сложности генерируемого HTML.
Можно генерировать простые опции, используя обычный ассоциативный массив:
'options' => ['elk' => 'Elk', 'beaver' => 'Beaver']
Если необходимо определить дополнительные атрибуты для элементов опций, можно использовать сложную форму для опций:
'options' => [ ['value' => 'elk', 'text' => 'Elk', 'data-foo' => 'bar'], ]
Эта форма требует определения ключей value и text. Если какой-либо из них не задан, опции не будут сгенерированы корректно.
Если необходимо определить группы опций, можно использовать вложенные массивы:
'options' => [ 'Mammals' => [ 'elk' => 'Elk', 'beaver' => 'Beaver' ] ]
И, наконец, если необходимо задать атрибуты для элементов optgroup, можно использовать более сложную вложенную форму массива:
'options' => [
[
'text' => 'Mammals',
'data-id' => 1,
'options' => [
'elk' => 'Elk',
'beaver' => 'Beaver'
]
],
] Можно комбинировать различные формы в одном наборе опций и вкладывать сложные типы по мере необходимости.
Параметры
-
array<string, mixed>$data Данные для рендеринга.
-
Cake\View\Form\ContextInterface$context Текущий контекст формы.
Возвращает
stringВыбрасывает
RuntimeExceptionесли имя атрибута пустое.
secureFields() public
secureFields(array<string, mixed> $data): array<string>
Возвращает список полей, которые необходимо защитить для этого виджета.
Параметры
-
array<string, mixed>$data
Возвращает
array<string>setMaxLength() protected
setMaxLength(array<string, mixed> $data, Cake\View\Form\ContextInterface $context, string $fieldName): array<string, mixed>
Устанавливает значение атрибута "maxlength", если применимо.
Параметры
-
array<string, mixed>$data Массив данных
-
Cake\View\Form\ContextInterface$context Экземпляр контекста.
-
string$fieldName Имя поля.
Возвращает
array<string, mixed>setRequired() protected
setRequired(array<string, mixed> $data, Cake\View\Form\ContextInterface $context, string $fieldName): array<string, mixed>
Устанавливает значение атрибута "required", если применимо.
Параметры
-
array<string, mixed>$data Массив данных
-
Cake\View\Form\ContextInterface$context Экземпляр контекста.
-
string$fieldName Имя поля.
Возвращает
array<string, mixed>setStep() protected
setStep(array<string, mixed> $data, Cake\View\Form\ContextInterface $context, string $fieldName): array<string, mixed>
Устанавливает значение атрибута "step", если применимо.
Параметры
-
array<string, mixed>$data Массив данных
-
Cake\View\Form\ContextInterface$context Экземпляр контекста.
-
string$fieldName Имя поля.
Возвращает
array<string, mixed>Подробное описание свойств
$_templates protected
Экземпляр StringTemplate.
Тип
Cake\View\StringTemplate$defaults protected
Значения по умолчанию.
Тип
array<string, mixed>
© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/4.3/class-Cake.View.Widget.SelectBoxWidget.html