Spec-Zone.ru › CakePHP 4.4

Класс Form

Абстракция формы, используемая для создания форм, не привязанных к моделям ORM или другим постоянным хранилищам данных. Идеально подходит для реализации форм на основе API-сервисов или форм обратной связи.

Создание формы

Этот класс наиболее полезен при наследовании. В подклассе вы должны определить методы _buildSchema, validationDefault и необязательно _execute. Они позволяют объявить поля формы, валидацию и основное действие соответственно.

Формы обычно размещаются в пространстве имён App\Form.

Пространство имён: Cake\Form

Константы

  • string
    BUILD_VALIDATOR_EVENT
    'Form.buildValidator'

    Имя события, генерируемого при создании валидатора.

  • string
    DEFAULT_VALIDATOR
    'default'

    Имя набора правил валидации по умолчанию.

  • string
    VALIDATOR_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

    Проверяет, существует ли метод валидации.

END_OF_DOCUMENT_MARKER

Подробное описание методов

__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

Данные формы.

Возвращает

bool

createValidator() protected

createValidator(string $name): Cake\Validation\Validator

Создаёт валидатор с помощью пользовательского метода внутри вашего класса.

Этот метод используется только для создания нового валидатора и не сохраняет его в вашем объекте. Если вы хотите создать и повторно использовать валидаторы, используйте метод getValidator().

Параметры

string $name

Имя набора валидации для создания.

Возвращает

Cake\Validation\Validator

Исключения

RuntimeException

dispatchEvent() 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\EventInterface

execute() public

execute(array $data, array<string, mixed> $options = []): bool

Выполнить форму, если она валидна.

Сначала валидирует форму, затем вызывает метод-обработчик _execute(). Этот метод-обработчик может быть реализован в подклассах для выполнения действия формы. Это может быть отправка электронной почты, взаимодействие с удалённым API или что-то ещё, что вам может потребоваться.

Параметры:

  • validate: Установите в значение false для отключения валидации. Также может быть строкой с правилами валидации, которые следует применить. По умолчанию true/'default'.

Параметры

array $data

Данные формы.

array<string, mixed> $options optional

Список параметров.

Возвращает

bool

getData() public

getData(string|null $field = null): mixed

Получить данные поля.

Параметры

string|null $field optional

Имя поля или null, чтобы получить массив данных со всеми полями.

Возвращает

mixed

getErrors() public

getErrors(): array

Получить ошибки в форме

Возвращает ошибки из последнего вызова validate() или execute().

Возвращает

array

getEventManager() public

getEventManager(): Cake\Event\EventManagerInterface

Возвращает экземпляр менеджера событий Cake\Event\EventManager для этого объекта.

Вы можете использовать этот экземпляр для регистрации новых слушателей или обратных вызовов к событиям объекта или создавать свои собственные события и вызывать их по своему усмотрению.

Возвращает

Cake\Event\EventManagerInterface

getSchema() public

getSchema(): Cake\Form\Schema

Получить схему для этой формы.

Этот метод вызовет _buildSchema() при первом построении схемы. Этот метод-обработчик позволяет настроить схему или загрузить предварительно определённую.

Возвращает

Cake\Form\Schema

getValidator() 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\Validator

hasValidator() public

hasValidator(string $name): bool

Проверяет, установлен ли валидатор.

Параметры

string $name

Имя валидатора.

Возвращает

bool

implementedEvents() 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\Schema

set() public

set(array|string $name, mixed $value = null): $this

Сохраняет переменную или ассоциативный массив переменных для использования внутри данных формы.

Параметры

array|string $name

Ключ для записи, может быть значением в формате с точками. В качестве альтернативы может быть массив, содержащий ключ(и) и значение(я).

mixed $value optional

Значение для установки переменной.

Возвращает

$this

setData() public

setData(array $data): $this

Установить данные формы.

Параметры

array $data

Массив данных.

Возвращает

$this

setErrors() public

setErrors(array $errors): $this

Установить ошибки в форме.

$errors = [
     'field_name' => ['rule_name' => 'message']
];

$form->setErrors($errors);

Параметры

array $errors

Список ошибок.

Возвращает

$this

setEventManager() public

setEventManager(Cake\Event\EventManagerInterface $eventManager): $this

Возвращает экземпляр Cake\Event\EventManagerInterface для этого объекта.

Вы можете использовать этот экземпляр для регистрации новых слушателей или обратных вызовов на события объекта, или создавать свои собственные события и вызывать их по своему усмотрению.

Параметры

Cake\Event\EventManagerInterface $eventManager

устанавливаемый eventManager

Возвращает

$this

setSchema() public

setSchema(Cake\Form\Schema $schema): $this

Устанавливает схему для этой формы.

Параметры

Cake\Form\Schema $schema

Устанавливаемая схема

Возвращает

$this

setValidator() 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

Устанавливаемый объект валидатора.

Возвращает

$this

validate() 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\Validator

validationMethodExists() 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.4/class-Cake.Form.Form.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API