Класс 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
Cake\Validation\Validator[]Список объектов валидации, индексированных по имени.
Резюме методов
-
__construct() public
Конструктор
-
__debugInfo() public
Получение отображаемой версии экземпляра формы.
-
_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
Получить обработчики событий формы, в которых заинтересована эта форма.
-
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 необязательно Менеджер событий. По умолчанию создается новый экземпляр.
__debugInfo() public
__debugInfo(): array
Получить печатную версию экземпляра Form.
Возвращает
array_buildSchema() protected
_buildSchema(Cake\Form\Schema $schema): Cake\Form\Schema
Метод-обработчик, который необходимо реализовать в подклассах.
Вы можете использовать этот метод для определения схемы, используя методы 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 необязательно Любое значение, которое вы хотите передать вместе с этим событием, чтобы его могли прочитать слушатели.
-
object|null$subject необязательно Объект, к которому относится это событие ($this по умолчанию).
Возвращает
Cake\Event\EventInterfaceexecute() public
execute(array $data): bool
Выполнить форму, если она валидна.
Сначала валидирует форму, затем вызывает метод-обработчик _execute(). Этот метод-обработчик может быть реализован в подклассах для выполнения действия формы. Это может быть отправка электронных писем, взаимодействие с удалённым API или что-либо другое, что вам может потребоваться.
Параметры
-
array$data Данные формы.
Возвращает
boolgetData() public
getData(string|null $field = null): mixed
Получить данные поля.
Параметры
-
string|null$field необязательно Имя поля или 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', вам нужно создать метод в вашем подклассе Table следующим образом:
public function validationForSubscription($validator)
{
return $validator
->add('email', 'valid-email', ['rule' => 'email'])
->add('password', 'valid', ['rule' => 'notBlank'])
->requirePresence('username');
}
$validator = $this->getValidator('forSubscription'); Вы можете реализовать метод в validationDefault в вашем подклассе Table, если хотите иметь набор валидации, который применяется в случаях, когда не задан другой.
Если аргумент $name не указан, будет возвращён валидатор по умолчанию. Вы можете настроить имя вашего валидатора по умолчанию в константе класса DEFAULT_VALIDATOR.
Параметры
-
string|null$name необязательно Имя набора правил валидации для возврата.
Возвращает
Cake\Validation\ValidatorhasValidator() public
hasValidator(string $name): bool
Проверяет, установлен ли валидатор.
Параметры
-
string$name Имя валидатора.
Возвращает
boolimplementedEvents() public
implementedEvents(): array
Получить обратные вызовы Form, интересующие эту форму.
Традиционная карта соответствий:
- Form.buildValidator => buildValidator
Возвращает
arrayschema() public
schema(Cake\Form\Schema|null $schema = null): Cake\Form\Schema
Получить/установить схему для этой формы.
Этот метод вызовет _buildSchema() при первом построении схемы. Этот метод-обработчик позволяет вам настроить схему или загрузить предварительно определённую схему.
Параметры
-
Cake\Form\Schema|null$schema необязательно Схема для установки, или null.
Возвращает
Cake\Form\Schemaset() public
set(string|array $name, mixed $value = null): $this
Сохраняет переменную или ассоциативный массив переменных для использования внутри данных формы.
Параметры
-
string|array$name Ключ для записи, может быть значением в обозначении точек. В качестве альтернативы может быть массив, содержащий ключ(и) и значение(я).
-
mixed$value необязательно Значение для установки переменной
Возвращает
$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): bool
Используется для проверки, проходит ли $data валидацию этой формы.
Параметры
-
array$data Данные для проверки.
Возвращает
boolvalidationDefault() 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
Список объектов валидации, индексированных по имени
Тип
Cake\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.2/class-Cake.Form.Form.html