Класс 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
Краткое описание констант
-
stringBUILD_VALIDATOR_EVENT'Form.buildValidator' -
stringVALIDATOR_PROVIDER_NAME'form'
Унаследованные константы
Краткое описание свойств
-
$_dataprotectedДанные формы.array -
$_errorsprotectedОшибки, если таковые имеютсяarray - Схема, используемая этой формой.
$_schemaprotected -
$_schemaClassprotectedКласс схемы.string - Валидатор, используемый этой формой.
$_validatorprotected
Унаследованные свойства
Краткое описание методов
- __construct() publicКонструктор
- __debugInfo() publicПолучение удобочитаемого представления экземпляра Form.
- _buildSchema() protectedМетод-обработчик, предназначенный для реализации в подклассах.
- Метод-обработчик, предназначенный для реализации в подклассах.
- _execute() protectedМетод-обработчик для реализации в подклассах.
- buildValidator() publicМетод-обработчик события Form.buildValidator.
- Получение ошибок в форме
- execute() publicВыполнение формы, если она валидна.
- getData() publicПолучение данных поля.
- getErrors() publicПолучение ошибок в форме
- implementedEvents() publicПолучение обратных вызовов Form, в которых интересуется эта форма.
- schema() publicПолучение/установка схемы для этой формы.
- setData() publicУстановка данных формы.
- setErrors() publicУстановка ошибок в форме.
- validate() publicПроверка, проходит ли $data валидацию этой формы.
- Получение/установка валидатора для этой формы.
Подробное описание методов
__construct()source public
__construct( Cake\Event\EventManager $eventManager = null )
Конструктор
Параметры
-
Cake\Event\EventManager$eventManageroptional 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 - Данные формы.
Возвращаемое значение
booleanbuildValidator()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 - Данные формы.
Возвращаемое значение
booleanFalse при ошибке валидации, в противном случае возвращает результат метода _execute().
getData()source public
getData( string|null $field = null )
Получить данные поля.
Параметры
- string|null
$fieldнеобязательно null Имя поля или null, чтобы получить массив данных со всеми полями.
Возвращает
mixedС момента
3.7.0getErrors()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.0setErrors()source public
setErrors( array $errors )
Установить ошибки в форме.
$errors = [
'field_name' => ['rule_name' => 'message']
];
$form->setErrors($errors); Параметры
- array
$errors - Список ошибок.
Возвращает
$this
С момента
3.5.1validate()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\EventeventManager()source public устарело
eventManager( Cake\Event\EventManager $eventManager = null )
Возвращает экземпляр менеджера Cake\Event\EventManager для этого объекта.
Вы можете использовать этот экземпляр для регистрации новых слушателей или обратных вызовов для событий объекта, или создавать собственные события и запускать их по своему желанию.
Устарело
3.5.0 Используйте getEventManager()/setEventManager() вместо этого.Параметры
-
Cake\Event\EventManager$eventManagerнеобязательно null - менеджер событий для установки
Возвращает
Cake\Event\EventManagergetEventManager()source public
getEventManager( )
Возвращает экземпляр менеджера Cake\Event\EventManager для этого объекта.
Вы можете использовать этот экземпляр для регистрации новых слушателей или обратных вызовов для событий объекта, или создавать собственные события и запускать их по своему желанию.
Возвращает
Cake\Event\EventManagersetEventManager()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Вызывает исключение
RuntimeExceptiongetValidator()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\ValidatorhasValidator()source public
hasValidator( string $name )
Проверяет, установлен ли валидатор.
Параметры
- string
$name - Имя валидатора.
Возвращает
booleansetValidator()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
validationDefault()source public
validationDefault( Cake\Validation\Validator $validator )
Возвращает объект валидатора по умолчанию. Подклассы могут переопределить эту функцию, чтобы добавить набор правил валидации по умолчанию к объекту валидатора.
Параметры
-
Cake\Validation\Validator$validator Валидатор, который можно изменить, чтобы добавить к нему некоторые правила.
Возвращает
Cake\Validation\ValidatorvalidationMethodExists()source protected
validationMethodExists( string $name )
Проверяет, существует ли метод валидации.
Параметры
- строка
$name - Имя метода валидации.
Возвращает
booleanМагические методы, унаследованные от Cake\Event\EventDispatcherInterface
getEventManager() |
Подробное описание свойств
© 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