Spec-Zone.ru › CakePHP 3.8

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

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

  • $_data protected
    array
    Данные формы.
  • $_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 deprecated
    Получение ошибок в форме
  • execute() public
    Выполнение формы, если она валидна.
  • getData() public
    Получение данных поля.
  • getErrors() public
    Получение ошибок в форме
  • implementedEvents() public
    Получение обратных вызовов Form, в которых интересуется эта форма.
  • schema() public
    Получение/установка схемы для этой формы.
  • setData() public
    Установка данных формы.
  • setErrors() public
    Установка ошибок в форме.
  • validate() public
    Проверка, проходит ли $data валидацию этой формы.
  • validator() public deprecated
    Получение/установка валидатора для этой формы.

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

__construct()source public

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

Конструктор

Параметры

Cake\Event\EventManager $eventManager optional 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 deprecated

errors( )

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

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

Устарело

3.7.0 Используйте Form::getErrors() вместо этого.

Возвращаемое значение

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

execute()source public

execute( array $data )

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

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

Параметры

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

Возвращаемое значение

boolean

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


END_OF_DOCUMENT_MARKER

getData()source public

getData( string|null $field = null )

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

Параметры

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

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

Возвращает

mixed

С момента

3.7.0

getErrors()source public

getErrors( )

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

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

Возвращает

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

implementedEvents()source public

implementedEvents( )

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

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

  • Form.buildValidator => buildValidator

Возвращает

array

Реализация

Cake\Event\EventListenerInterface::implementedEvents()

schema()source public

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

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

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

Параметры

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

Возвращает

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

setData()source public

setData( array $data )

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

Параметры

array $data
Массив данных.

Возвращает


$this

С момента

3.7.0

setErrors()source public

setErrors( array $errors )

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

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

$form->setErrors($errors);

Параметры

array $errors
Список ошибок.

Возвращает


$this

С момента

3.5.1

validate()source public

validate( array $data )

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

Параметры

array $data
Проверяемые данные.

Возвращает

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

validator()source public устарело

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 )

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

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

Параметры

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

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

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

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

Возвращает

Cake\Event\Event

eventManager()source public устарело

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

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

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

Устарело

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

Параметры

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

Возвращает

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
менеджер событий для установки

Возвращает


$this

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

createValidator()source protected

createValidator( string $name )

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

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

Параметры

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

Возвращает

Cake\Validation\Validator

Вызывает исключение

RuntimeException

getValidator()source public

getValidator( string|null $name = null )

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

Возвращает

Cake\Validation\Validator

hasValidator()source public

hasValidator( string $name )

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

Параметры

string $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);

Параметры

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

Возвращает


$this
END_OF_DOCUMENT_MARKER ```

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

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

$_datasource

protected массив

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

С момента

3.7.0
[]

$_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.8/class-Cake.Form.Form.html

Spec-Zone.ru

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