VALIDATOR_PROVIDER_NAME
VALIDATOR_PROVIDER_NAME = 'form' : string
The alias this object is assigned to validators as.
Form abstraction used to create forms not tied to ORM backed models, or to other permanent datastores. Ideal for implementing forms on top of API services, or contact forms.
This class is most useful when subclassed. In a subclass you
should define the _buildSchema
, _buildValidator
and optionally,
the _execute
methods. These allow you to declare your form's
fields, validation and primary action respectively.
You can also define the validation and schema by chaining method
calls off of $form->schema()
and $form->validator()
.
Forms are conventionally placed in the App\Form
namespace.
$_eventManager : \Cake\Event\EventManagerInterface|\Cake\Event\EventManager
Instance of the Cake\Event\EventManager this object is using to dispatch inner events.
$_validators : array<mixed,\Cake\Validation\Validator>
A list of validation objects indexed by name
$_schema : \Cake\Form\Schema
The schema used by this form.
$_validator : \Cake\Validation\Validator
The validator used by this form.
eventManager(\Cake\Event\EventManager|null $eventManager = null) : \Cake\Event\EventManager
Returns the Cake\Event\EventManager manager instance for this object.
You can use this instance to register any new listeners or callbacks to the object events, or create your own events and trigger them at will.
\Cake\Event\EventManager|null | $eventManager | the eventManager to set |
getEventManager() : \Cake\Event\EventManager
Returns the Cake\Event\EventManager manager instance for this object.
You can use this instance to register any new listeners or callbacks to the object events, or create your own events and trigger them at will.
None found |
setEventManager(\Cake\Event\EventManager $eventManager) : $this
Returns the Cake\Event\EventManager manager instance for this object.
You can use this instance to register any new listeners or callbacks to the object events, or create your own events and trigger them at will.
\Cake\Event\EventManager | $eventManager | the eventManager to set |
None found |
dispatchEvent(string $name, array|null $data = null, object|null $subject = null) : \Cake\Event\Event
Wrapper for creating and dispatching events.
Returns a dispatched event.
string | $name | Name of the event. |
array|null | $data | Any value you wish to be transported with this event to it can be read by listeners. |
object|null | $subject | The object that this event applies to ($this by default). |
None found |
validator(\Cake\Validation\Validator|null $validator = null) : \Cake\Validation\Validator
Get/Set the validator for this form.
This method will call _buildValidator()
when the validator
is first built. This hook method lets you configure the
validator or load a pre-defined one.
\Cake\Validation\Validator|null | $validator | The validator to set, or null. |
the validator instance.
None found |
getValidator(string|null $name = null) : \Cake\Validation\Validator
Returns the validation rules tagged with $name. It is possible to have multiple different named validation sets, this is useful when you need to use varying rules when saving from different routines in your system.
If a validator has not been set earlier, this method will build a valiator using a method inside your class.
For example, if you wish to create a validation set called 'forSubscription', you will need to create a method in your Table subclass as follows:
public function validationForSubscription($validator)
{
return $validator
->add('email', 'valid-email', ['rule' => 'email'])
->add('password', 'valid', ['rule' => 'notBlank'])
->requirePresence('username');
}
$validator = $this->getValidator('forSubscription');
You can implement the method in validationDefault
in your Table subclass
should you wish to have a validation set that applies in cases where no other
set is specified.
If a $name argument has not been provided, the default validator will be returned.
You can configure your default validator name in a DEFAULT_VALIDATOR
class constant.
string|null | $name | The name of the validation set to return. |
None found |
setValidator(string $name, \Cake\Validation\Validator $validator) : $this
This method stores a custom validator under the given name.
You can build the object by yourself and store it in your object:
$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 | The name of a validator to be set. |
\Cake\Validation\Validator | $validator | Validator object to be set. |
None found |
hasValidator(string $name) : boolean
Checks whether or not a validator has been set.
string | $name | The name of a validator. |
None found |
validationDefault(\Cake\Validation\Validator $validator) : \Cake\Validation\Validator
Returns the default validator object. Subclasses can override this function to add a default validation set to the validator object.
\Cake\Validation\Validator | $validator | The validator that can be modified to add some rules to it. |
None found |
__construct(\Cake\Event\EventManager|null $eventManager = null)
Constructor
\Cake\Event\EventManager|null | $eventManager | The event manager. Defaults to a new instance. |
None found |
implementedEvents() : array
Get the Form callbacks this form is interested in.
The conventional method map is:
None found |
schema(\Cake\Form\Schema|null $schema = null) : \Cake\Form\Schema
Get/Set the schema for this form.
This method will call _buildSchema()
when the schema
is first built. This hook method lets you configure the
schema or load a pre-defined one.
\Cake\Form\Schema|null | $schema | The schema to set, or null. |
the schema instance.
None found |
buildValidator(\Cake\Event\Event $event, \Cake\Validation\Validator $validator, string $name) : void
Callback method for Form.buildValidator event.
\Cake\Event\Event | $event | The Form.buildValidator event instance. |
\Cake\Validation\Validator | $validator | The validator to customize. |
string | $name | Validator name |
None found |
validate(array $data) : boolean
Used to check if $data passes this form's validation.
array | $data | The data to check. |
Whether or not the data is valid.
None found |
errors() : array
Get the errors in the form
Will return the errors from the last call
to validate()
or execute()
.
Last set validation errors.
None found |
getErrors() : array
Get the errors in the form
Will return the errors from the last call
to validate()
or execute()
.
Last set validation errors.
None found |
setErrors(array $errors) : $this
Set the errors in the form.
$errors = [
'field_name' => ['rule_name' => 'message']
];
$form->setErrors($errors);
array | $errors | Errors list. |
since | 3.5.1 |
---|
execute(array $data) : boolean
Execute the form if it is valid.
First validates the form, then calls the _execute()
hook method.
This hook method can be implemented in subclasses to perform
the action of the form. This may be sending email, interacting
with a remote API, or anything else you may need.
array | $data | Form data. |
False on validation failure, otherwise returns the
result of the _execute()
method.
None found |
getData(string|null $field = null) : mixed
Get field data.
string|null | $field | The field name or null to get data array with all fields. |
since | 3.7.0 |
---|
setData(array $data) : $this
Set form data.
array | $data | Data array. |
since | 3.7.0 |
---|
None found |
createValidator(string $name) : \Cake\Validation\Validator
Creates a validator using a custom method inside your class.
This method is used only to build a new validator and it does not store it in your object. If you want to build and reuse validators, use getValidator() method instead.
string | $name | The name of the validation set to create. |
None found |
validationMethodExists(string $name) : boolean
Checks if validation method exists.
string | $name | Validation method name. |
None found |
_buildSchema(\Cake\Form\Schema $schema) : \Cake\Form\Schema
A hook method intended to be implemented by subclasses.
You can use this method to define the schema using the methods on Cake\Form\Schema, or loads a pre-defined schema from a concrete class.
\Cake\Form\Schema | $schema | The schema to customize. |
The schema to use.
None found |
_buildValidator(\Cake\Validation\Validator $validator) : \Cake\Validation\Validator
A hook method intended to be implemented by subclasses.
You can use this method to define the validator using the methods on Cake\Validation\Validator or loads a pre-defined validator from a concrete class.
\Cake\Validation\Validator | $validator | The validator to customize. |
The validator to use.
None found |
_execute(array $data) : boolean
Hook method to be implemented in subclasses.
Used by execute()
to execute the form's action.
array | $data | Form data. |
None found |