Класс 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'
Унаследованные константы
Краткое описание свойств
-
$_errorsprotectedОшибки, если естьarray - Схема, используемая этой формой.
$_schemaprotected -
$_schemaClassprotectedКласс схемы.string - Валидатор, используемый этой формой.
$_validatorprotected
Унаследованные свойства
Краткое описание методов
- __construct() publicКонструктор
- __debugInfo() publicПолучение печатного представления экземпляра Form.
- _buildSchema() protectedМетод-обработчик, предназначенный для реализации в подклассах.
- Метод-обработчик, предназначенный для реализации в подклассах.
- _execute() protectedМетод-обработчик, подлежащий реализации в подклассах.
- buildValidator() publicМетод обратного вызова для события Form.buildValidator.
- errors() publicПолучение ошибок в форме
- execute() publicВыполнение формы, если она валидна.
- implementedEvents() publicПолучение обратных вызовов Form, к которым эта форма заинтересована.
- schema() publicПолучение/Установка схемы для этой формы.
- setErrors() publicУстановка ошибок в форме.
- validate() publicПроверка, соответствует ли $data валидации этой формы.
- Получение/Установка валидатора для этой формы.
Подробное описание методов
__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 - Данные формы.
Возвращает
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
errors( )
Получение ошибок в форме
Возвращает ошибки, полученные при последнем вызове validate() или execute().
Возвращает
массивПоследние установленные ошибки валидации.
execute()source public
execute( array $data )
Выполнение формы, если она валидна.
Сначала валидирует форму, затем вызывает метод-обработчик _execute(). Этот метод-обработчик может быть реализован в подклассах для выполнения действия формы. Это может быть отправка электронной почты, взаимодействие с удалённым API или что-либо ещё, что вам нужно.
Параметры
- массив
$data - Данные формы.
Возвращает
booleanFalse при ошибке валидации, в противном случае возвращает результат метода _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.1validate()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\EventeventManager()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\EventManagergetEventManager()source public
getEventManager( )
Возвращает экземпляр менеджера Cake\Event\EventManager для этого объекта.
Вы можете использовать этот экземпляр для регистрации новых слушателей или обратных вызовов к событиям объекта, или создавать свои собственные события и вызывать их по своему желанию.
Возвращает
Cake\Event\EventManagersetEventManager()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Выбрасывает
RuntimeExceptiongetValidator()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\ValidatorhasValidator()source public
hasValidator( string $name )
Проверяет, установлен ли валидатор.
Параметры
- строка
$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); Параметры
- строка
$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.6/class-Cake.Form.Form.html