Spec-Zone.ru › CakePHP 4.2

Класс 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
    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

    Проверяет наличие метода валидации.

END_OF_DOCUMENT_MARKER

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

__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

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

Возвращает

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 необязательно

Любое значение, которое вы хотите передать вместе с этим событием, чтобы его могли прочитать слушатели.

object|null $subject необязательно

Объект, к которому относится это событие ($this по умолчанию).

Возвращает

Cake\Event\EventInterface

execute() public

execute(array $data): bool

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

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

Параметры

array $data

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

Возвращает

bool

getData() public

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

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

Параметры

string|null $field необязательно

Имя поля или 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', вам нужно создать метод в вашем подклассе 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\Validator

hasValidator() public

hasValidator(string $name): bool

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

Параметры

string $name

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

Возвращает

bool

implementedEvents() public

implementedEvents(): array

Получить обратные вызовы Form, интересующие эту форму.

Традиционная карта соответствий:

  • Form.buildValidator => buildValidator

Возвращает

array

schema() public

schema(Cake\Form\Schema|null $schema = null): Cake\Form\Schema

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

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

Параметры

Cake\Form\Schema|null $schema необязательно

Схема для установки, или null.

Возвращает

Cake\Form\Schema

set() public

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

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

Параметры

string|array $name

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

mixed $value необязательно

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

Возвращает

$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): bool

Используется для проверки, проходит ли $data валидацию этой формы.

Параметры

array $data

Данные для проверки.

Возвращает

bool

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

Список объектов валидации, индексированных по имени

Тип

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

Spec-Zone.ru

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