Класс Form
Абстракция формы, используемая для создания форм, не привязанных к моделям ORM или другим постоянным хранилищам данных. Идеально подходит для реализации форм на основе API-сервисов или форм обратной связи.
Создание формы
Этот класс наиболее полезен при наследовании. В подклассе вы должны определить методы _buildSchema, validationDefault и необязательно _execute. Они позволяют объявить поля формы, валидацию и основное действие соответственно.
Формы обычно размещаются в пространстве имён App\Form.
Константы
-
stringBUILD_VALIDATOR_EVENT'Form.buildValidator'
Имя события, генерируемого при создании валидатора.
-
stringDEFAULT_VALIDATOR'default'
Имя набора правил валидации по умолчанию.
-
stringVALIDATOR_PROVIDER_NAME'form'
Псевдоним, присваиваемый этому объекту как поставщику валидаторов.
Резюме свойств
- $_data protected
arrayДанные формы.
- $_errors protected
arrayВозможные ошибки.
- $_eventClass protected
stringИмя класса по умолчанию для новых объектов событий.
- $_eventManager protected
Cake\Event\EventManagerInterface|nullЭкземпляр Cake\Event\EventManager, используемый этим объектом для генерации внутренних событий.
- $_schema protected
Cake\Form\Schema|nullСхема, используемая этой формой.
- $_schemaClass protected
stringКласс схемы.
- $_validatorClass protected
stringКласс валидатора.
- $_validators protected
arrayCake\Validation\Validator>Список объектов валидации, индексированных по имени.
Резюме методов
-
__construct() public
Конструктор
-
__debugInfo() public
Получение печатной версии экземпляра Form.
-
_buildSchema() protected
Метод-хук, предназначенный для реализации в подклассах.
-
_execute() protected
Метод-хук для реализации в подклассах.
-
createValidator() protected
Создаёт валидатор с помощью пользовательского метода внутри класса.
-
dispatchEvent() public
Обёртка для создания и отправки событий.
-
execute() public
Выполнить форму, если она валидна.
-
getData() public
Получить данные поля.
-
getErrors() public
Получить ошибки в форме.
-
getEventManager() public
Возвращает экземпляр менеджера Cake\Event\EventManager для этого объекта.
-
getSchema() public
Получить схему для этой формы.
-
getValidator() public
Возвращает правила валидации, помеченные тегом $name. Возможна настройка нескольких наборов правил валидации с разными именами, что полезно при необходимости использования разных правил при сохранении из разных процедур в системе.
-
hasValidator() public
Проверяет, установлен ли валидатор.
-
implementedEvents() public
Получить обработчики событий Form, на которые подписана эта форма.
-
schema() public deprecated
Получить/установить схему для этой формы.
-
set() public
Сохраняет переменную или ассоциативный массив переменных для использования в данных формы.
-
setData() public
Установить данные формы.
-
setErrors() public
Установить ошибки в форме.
-
setEventManager() public
Возвращает экземпляр Cake\Event\EventManagerInterface для этого объекта.
-
setSchema() public
Установить схему для этой формы.
-
setValidator() public
Этот метод сохраняет пользовательский валидатор под заданным именем.
-
validate() public
Используется для проверки, соответствует ли $data валидации этой формы.
-
validationDefault() public
Возвращает объект валидатора по умолчанию. Подклассы могут переопределить эту функцию, чтобы добавить набор правил валидации по умолчанию к объекту валидатора.
-
validationMethodExists() protected
Проверяет, существует ли метод валидации.
Подробное описание методов
__construct() public
__construct(Cake\Event\EventManager|null $eventManager = null)
Конструктор
Параметры
-
Cake\Event\EventManager|null$eventManager optional Менеджер событий. По умолчанию создаётся новый экземпляр.
__debugInfo() public
__debugInfo(): array<string, mixed>
Получить печатную версию экземпляра формы.
Возвращает
array<string, mixed>_buildSchema() protected
_buildSchema(Cake\Form\Schema $schema): Cake\Form\Schema
Метод-обработчик, предназначенный для реализации в подклассах.
Вы можете использовать этот метод для определения схемы с помощью методов {@link \Cake\Form\Schema} или загрузить предварительно определённую схему из конкретного класса.
Параметры
-
Cake\Form\Schema$schema Схема для настройки.
Возвращает
Cake\Form\Schema_execute() protected
_execute(array $data): bool
Метод-обработчик для реализации в подклассах.
Используется методом execute() для выполнения действия формы.
Параметры
-
array$data Данные формы.
Возвращает
boolcreateValidator() protected
createValidator(string $name): Cake\Validation\Validator
Создаёт валидатор с помощью пользовательского метода внутри вашего класса.
Этот метод используется только для создания нового валидатора и не сохраняет его в вашем объекте. Если вы хотите создать и повторно использовать валидаторы, используйте метод getValidator().
Параметры
-
string$name Имя набора валидации для создания.
Возвращает
Cake\Validation\ValidatorИсключения
RuntimeExceptiondispatchEvent() public
dispatchEvent(string $name, array|null $data = null, object|null $subject = null): Cake\Event\EventInterface
Обёртка для создания и отправки событий.
Возвращает обработанное событие.
Параметры
-
string$name Имя события.
-
array|null$data optional Любое значение, которое вы хотите передать вместе с этим событием, его могут прочитать слушатели.
-
object|null$subject optional Объект, к которому относится это событие ($this по умолчанию).
Возвращает
Cake\Event\EventInterfaceexecute() public
execute(array $data, array<string, mixed> $options = []): bool
Выполнить форму, если она валидна.
Сначала валидирует форму, затем вызывает метод-обработчик _execute(). Этот метод-обработчик может быть реализован в подклассах для выполнения действия формы. Это может быть отправка электронной почты, взаимодействие с удалённым API или что-то ещё, что вам может потребоваться.
Параметры:
- validate: Установите в значение
falseдля отключения валидации. Также может быть строкой с правилами валидации, которые следует применить. По умолчаниюtrue/'default'.
Параметры
-
array$data Данные формы.
-
array<string, mixed>$options optional Список параметров.
Возвращает
boolgetData() public
getData(string|null $field = null): mixed
Получить данные поля.
Параметры
-
string|null$field optional Имя поля или null, чтобы получить массив данных со всеми полями.
Возвращает
mixedgetErrors() public
getErrors(): array
Получить ошибки в форме
Возвращает ошибки из последнего вызова validate() или execute().
Возвращает
arraygetEventManager() public
getEventManager(): Cake\Event\EventManagerInterface
Возвращает экземпляр менеджера событий Cake\Event\EventManager для этого объекта.
Вы можете использовать этот экземпляр для регистрации новых слушателей или обратных вызовов к событиям объекта или создавать свои собственные события и вызывать их по своему усмотрению.
Возвращает
Cake\Event\EventManagerInterfacegetSchema() public
getSchema(): Cake\Form\Schema
Получить схему для этой формы.
Этот метод вызовет _buildSchema() при первом построении схемы. Этот метод-обработчик позволяет настроить схему или загрузить предварительно определённую.
Возвращает
Cake\Form\SchemagetValidator() public
getValidator(string|null $name = null): Cake\Validation\Validator
Возвращает правила валидации, помеченные $name. Возможно иметь несколько наборов правил валидации с разными именами, это полезно, когда вам нужно использовать разные правила при сохранении из разных частей вашей системы.
Если валидатор не был установлен ранее, этот метод создаст валидатор с помощью метода внутри вашего класса.
Например, если вы хотите создать набор правил валидации с именем 'forSubscription', вам нужно создать метод в вашем подклассе таблицы следующим образом:
public function validationForSubscription($validator)
{
return $validator
->add('email', 'valid-email', ['rule' => 'email'])
->add('password', 'valid', ['rule' => 'notBlank'])
->requirePresence('username');
}
$validator = $this->getValidator('forSubscription'); Вы можете реализовать метод в validationDefault в вашем подклассе таблицы, если хотите иметь набор правил валидации, применяемый в тех случаях, когда другой набор не указан.
Если аргумент $name не указан, будет возвращён валидатор по умолчанию. Вы можете настроить имя валидатора по умолчанию в классе DEFAULT_VALIDATOR.
Параметры
-
string|null$name optional Имя набора валидации для возврата.
Возвращает
Cake\Validation\ValidatorhasValidator() public
hasValidator(string $name): bool
Проверяет, установлен ли валидатор.
Параметры
-
string$name Имя валидатора.
Возвращает
boolimplementedEvents() public
implementedEvents(): array<string, mixed>
Получить обратные вызовы формы, которые интересуют эту форму.
Конвенциональная карта отображения:
- Form.buildValidator => buildValidator
Возвращает
array<string, mixed>schema() public
schema(Cake\Form\Schema|null $schema = null): Cake\Form\Schema
Получить/установить схему для этой формы.
Этот метод вызовет _buildSchema() при первом построении схемы. Этот метод-обработчик позволяет настроить схему или загрузить предварительно определённую.
Параметры
-
Cake\Form\Schema|null$schema optional Схема для установки, или null.
Возвращает
Cake\Form\Schemaset() public
set(array|string $name, mixed $value = null): $this
Сохраняет переменную или ассоциативный массив переменных для использования внутри данных формы.
Параметры
-
array|string$name Ключ для записи, может быть значением в формате с точками. В качестве альтернативы может быть массив, содержащий ключ(и) и значение(я).
-
mixed$value optional Значение для установки переменной.
Возвращает
$thissetData() public
setData(array $data): $this
Установить данные формы.
Параметры
-
array$data Массив данных.
Возвращает
$thissetErrors() public
setErrors(array $errors): $this
Установить ошибки в форме.
$errors = [
'field_name' => ['rule_name' => 'message']
];
$form->setErrors($errors); Параметры
-
array$errors Список ошибок.
Возвращает
$thissetEventManager() public
setEventManager(Cake\Event\EventManagerInterface $eventManager): $this
Возвращает экземпляр Cake\Event\EventManagerInterface для этого объекта.
Вы можете использовать этот экземпляр для регистрации новых слушателей или обратных вызовов на события объекта, или создавать свои собственные события и вызывать их по своему усмотрению.
Параметры
-
Cake\Event\EventManagerInterface$eventManager устанавливаемый eventManager
Возвращает
$thissetSchema() public
setSchema(Cake\Form\Schema $schema): $this
Устанавливает схему для этой формы.
Параметры
-
Cake\Form\Schema$schema Устанавливаемая схема
Возвращает
$thissetValidator() public
setValidator(string $name, Cake\Validation\Validator $validator): $this
Этот метод сохраняет пользовательский валидатор под данным именем.
Вы можете сами создать объект и сохранить его в своём объекте:
$validator = new \Cake\Validation\Validator();
$validator
->add('email', 'valid-email', ['rule' => 'email'])
->add('password', 'valid', ['rule' => 'notBlank'])
->allowEmpty('bio');
$this->setValidator('forSubscription', $validator); Параметры
-
string$name Имя устанавливаемого валидатора.
-
Cake\Validation\Validator$validator Устанавливаемый объект валидатора.
Возвращает
$thisvalidate() public
validate(array $data, string|null $validator = null): bool
Используется для проверки, соответствует ли $data валидации этой формы.
Параметры
-
array$data Данные для проверки.
-
string|null$validator optional Имя валидатора.
Возвращает
boolВызывает исключение
RuntimeExceptionЕсли валидатор некорректен.
validationDefault() public
validationDefault(Cake\Validation\Validator $validator): Cake\Validation\Validator
Возвращает объект валидатора по умолчанию. Подклассы могут переопределить эту функцию, чтобы добавить набор валидации по умолчанию в объект валидатора.
Параметры
-
Cake\Validation\Validator$validator Валидатор, который можно изменить, чтобы добавить к нему некоторые правила.
Возвращает
Cake\Validation\ValidatorvalidationMethodExists() protected
validationMethodExists(string $name): bool
Проверяет, существует ли метод валидации.
Параметры
-
string$name Имя метода валидации.
Возвращает
boolПодробное описание свойств
$_data protected
Данные формы.
Тип
array$_errors protected
Возможные ошибки
Тип
array$_eventClass protected
Имя класса по умолчанию для новых объектов событий.
Тип
string$_eventManager protected
Экземпляр Cake\Event\EventManager, используемый этим объектом для отправки внутренних событий.
Тип
Cake\Event\EventManagerInterface|null$_schema protected
Схема, используемая этой формой.
Тип
Cake\Form\Schema|null$_schemaClass protected
Класс схемы.
Тип
string$_validatorClass protected
Класс валидатора.
Тип
string$_validators protected
Список объектов валидации, индексированных по имени
Тип
arrayCake\Validation\Validator>
© 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.Form.Form.html