Spec-Zone.ru › CakePHP 3.6

Класс Form

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

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

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

Вы также можете определить валидацию и схему, вызывая методы из $form->schema() и $form->validator().

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

Cake\Form\Form реализует Cake\Event\EventListenerInterface, Cake\Event\EventDispatcherInterface, Cake\Validation\ValidatorAwareInterface использует Cake\Event\EventDispatcherTrait , Cake\Validation\ValidatorAwareTrait
Пространство имён: Cake\Form
Расположение: Form/Form.php

Краткое описание констант

  • string

    BUILD_VALIDATOR_EVENT
    'Form.buildValidator'
  • string

    VALIDATOR_PROVIDER_NAME
    'form'

Унаследованные константы

  • DEFAULT_VALIDATOR

Краткое описание свойств

  • $_errors protected
    array
    Ошибки, если есть
  • $_schema protected
    Cake\Form\Schema
    Схема, используемая этой формой.
  • $_schemaClass protected
    string
    Класс схемы.
  • $_validator protected
    Cake\Validation\Validator
    Валидатор, используемый этой формой.

Унаследованные свойства

  • _eventClass, _eventManager _validatorClass, _validators

Краткое описание методов

  • __construct() public
    Конструктор
  • __debugInfo() public
    Получение печатного представления экземпляра Form.
  • _buildSchema() protected
    Метод-обработчик, предназначенный для реализации в подклассах.
  • _buildValidator() protected deprecated
    Метод-обработчик, предназначенный для реализации в подклассах.
  • _execute() protected
    Метод-обработчик, подлежащий реализации в подклассах.
  • buildValidator() public
    Метод обратного вызова для события Form.buildValidator.
  • errors() public
    Получение ошибок в форме
  • execute() public
    Выполнение формы, если она валидна.
  • implementedEvents() public
    Получение обратных вызовов Form, к которым эта форма заинтересована.
  • schema() public
    Получение/Установка схемы для этой формы.
  • setErrors() public
    Установка ошибок в форме.
  • validate() public
    Проверка, соответствует ли $data валидации этой формы.
  • validator() public deprecated
    Получение/Установка валидатора для этой формы.

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

__construct()source public

__construct( Cake\Event\EventManager $eventManager = null )

Конструктор

Параметры

Cake\Event\EventManager $eventManager необязательный null

Менеджер событий. По умолчанию создаётся новый экземпляр.

__debugInfo()source public

__debugInfo( )

Получение печатного представления экземпляра Form.

Возвращает

массив

_buildSchema()source protected

_buildSchema( Cake\Form\Schema $schema )

Метод-обработчик, предназначенный для реализации в подклассах.

Вы можете использовать этот метод для определения схемы, используя методы в Cake\Form\Schema, или загрузить предварительно определённую схему из конкретного класса.

Параметры

Cake\Form\Schema $schema
Схема для настройки.

Возвращает

Cake\Form\Schema
Используемая схема.

_buildValidator()source protected deprecated

_buildValidator( Cake\Validation\Validator $validator )

Метод-обработчик, предназначенный для реализации в подклассах.

Вы можете использовать этот метод для определения валидатора, используя методы в Cake\Validation\Validator или загрузить предварительно определённый валидатор из конкретного класса.

Устарело

3.6.0 Используйте Form::getValidator()/setValidator() и buildValidator() вместо этого.

Параметры

Cake\Validation\Validator $validator
Валидатор для настройки.

Возвращает

Cake\Validation\Validator
Используемый валидатор.

_execute()source protected

_execute( array $data )

Метод-обработчик, подлежащий реализации в подклассах.

Используется execute() для выполнения действия формы.

Параметры

массив $data
Данные формы.

Возвращает

boolean

buildValidator()source public

buildValidator( Cake\Event\Event $event , Cake\Validation\Validator $validator , string $name )

Метод обратного вызова для события Form.buildValidator.

Параметры

Cake\Event\Event $event
Экземпляр события Form.buildValidator.
Cake\Validation\Validator $validator
Валидатор для настройки.
строка $name
Имя валидатора

errors()source public

errors( )

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

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

Возвращает

массив
Последние установленные ошибки валидации.

execute()source public

execute( array $data )

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

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

Параметры

массив $data
Данные формы.

Возвращает

boolean

False при ошибке валидации, в противном случае возвращает результат метода _execute().


implementedEvents()source public

implementedEvents( )

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

Обычный метод отображения:

  • Form.buildValidator => buildValidator

Возвращает

массив

Реализация

Cake\Event\EventListenerInterface::implementedEvents()

schema()source public

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

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

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

Параметры

Cake\Form\Schema $schema необязательный null
Схема для установки, или null.

Возвращает

Cake\Form\Schema
экземпляр схемы.

setErrors()source public

setErrors( array $errors )

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

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

$form->setErrors($errors);

Параметры

массив $errors
Список ошибок.

Возвращает


$this

С тех пор

3.5.1

validate()source public

validate( array $data )

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

Параметры

массив $data
Данные для проверки.

Возвращает

boolean
Являются ли данные валидными.

validator()source public deprecated

validator( Cake\Validation\Validator $validator = null )

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

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

Устарело

3.6.0 Используйте Form::getValidator()/setValidator() вместо этого.

Параметры

Cake\Validation\Validator $validator необязательно null
Валидатор для установки, или null.

Возвращает

Cake\Validation\Validator
экземпляр валидатора.

Методы, используемые из Cake\Event\EventDispatcherTrait

dispatchEvent()source public

dispatchEvent( string $name , array|null $data = null , object|null $subject = null )

Обёртка для создания и отправки событий.

Возвращает обработанное событие.

Параметры

строка $name
Имя события.
массив|null $data необязательно null

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

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

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

Возвращает

Cake\Event\Event

eventManager()source public deprecated

eventManager( Cake\Event\EventManager $eventManager = null )

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

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

Устарело

3.5.0 Используйте getEventManager()/setEventManager() вместо этого.

Параметры

Cake\Event\EventManager $eventManager необязательно null
устанавливаемый eventManager

Возвращает

Cake\Event\EventManager

getEventManager()source public

getEventManager( )

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

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

Возвращает

Cake\Event\EventManager

setEventManager()source public

setEventManager( Cake\Event\EventManager $eventManager )

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

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

Параметры

Cake\Event\EventManager $eventManager
устанавливаемый eventManager

Возвращает


$this

Методы, используемые из Cake\Validation\ValidatorAwareTrait

createValidator()source protected

createValidator( string $name )

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

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

Параметры

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

Возвращает

Cake\Validation\Validator

Выбрасывает

RuntimeException

getValidator()source public

getValidator( string|null $name = null )

Возвращает правила валидации, помеченные тегом $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.

Параметры

строка|null $name необязательно null
Имя набора валидации для возвращения.

Возвращает

Cake\Validation\Validator

hasValidator()source public

hasValidator( string $name )

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

Параметры

строка $name
Имя валидатора.

Возвращает

boolean

setValidator()source public

setValidator( string $name , Cake\Validation\Validator $validator )

Этот метод хранит пользовательский валидатор под заданным именем.

Вы можете создать объект самостоятельно и сохранить его в своём объекте:

$validator = new \Cake\Validation\Validator($table);
$validator
 ->add('email', 'valid-email', ['rule' => 'email'])
 ->add('password', 'valid', ['rule' => 'notBlank'])
 ->allowEmpty('bio');
$this->setValidator('forSubscription', $validator);

Параметры

строка $name
Имя устанавливаемого валидатора.
Cake\Validation\Validator $validator
Устанавливаемый объект валидатора.

Возвращает


$this

validationDefault()source public

validationDefault( Cake\Validation\Validator $validator )

Возвращает объект стандартного валидатора. Подклассы могут переопределить эту функцию, чтобы добавить стандартный набор валидации к объекту валидатора.

Параметры

Cake\Validation\Validator $validator

Валидатор, который может быть изменён для добавления правил.

Возвращает

Cake\Validation\Validator

validationMethodExists()source protected

validationMethodExists( string $name )

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

Параметры

строка $name
Имя метода валидации.

Возвращает

boolean

Магические методы, унаследованные от Cake\Event\EventDispatcherInterface

getEventManager()

Подробности свойств

$_errorssource

protected массив

Ошибки, если есть

[]

$_schemasource

protected Cake\Form\Schema

Схема, используемая этой формой.

$_schemaClasssource

protected строка

Класс схемы.

Cake\Form\Schema::class

$_validatorsource

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/3.6/class-Cake.Form.Form.html

Spec-Zone.ru

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