инвентаризация:dev:forms

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
инвентаризация:dev:forms [2025/05/01 17:00]
admin [Modal Popups]
инвентаризация:dev:forms [2025/05/01 18:18] (текущий)
admin [Placeholders]
Строка 116: Строка 116:
 ++++ ++++
 во избежание подобных коллизий мы делаем в init по умолчанию id вида className-id-form во избежание подобных коллизий мы делаем в init по умолчанию id вида className-id-form
 +Для этого во всех формах желательно указывать модель через конфиг
 ==== Placeholders ==== ==== Placeholders ====
 +Во-первых у ArmsModel есть метод getAttributePlaceholder($attribute), который возвращает плейсхолдер для поля ввода атрибута.
 +Если атрибут отмечен как is_inheritable, то возвращает унаследованное значение (либо указанное в inheritablePlaceholder параметре атрибута (может быть и функцией))
 +Во вторых в [[#ActiveField]] все методы для вывода инпутов переопределены для подгрузки плейсхолдеров
 +В третьих в форме по умолчанию включена Ajax валидация, которая в ArmsBaseController тоже переопределена и к данным валидации добавляет значения плейсхолдеров для валидируемого набора значений модели. Зачем? Меняем родителя - меняются унаследованные значения, которые видно в плейсхолдерах
 +В четвертых, чтобы обрабатывать передаваемые плейсхолдеры к форме прикрепляется обработчик события OnAjaxComplete
 +
 +==== Валидация ====
 +По умолчанию формы включают ajax валидацию, но чтобы сгенерировать url валидации по умолчанию (который обслуживается через ArmsBaseController) нужно указывать модель в конфигурацию формы
  • инвентаризация/dev/forms.1746118849.txt.gz
  • Последнее изменение: 2025/05/01 17:00
  • admin