Provides a basic array based context provider for FormHelper.
This adapter is useful in testing or when you have forms backed by simple array data structures.
Important keys:
data
Holds the current values supplied for the fields.defaults
The default values for fields. These values will be used when there is no data set. Data should be nested following the dot separated paths you access your fields with.required
A nested array of fields, relationships and boolean flags to indicate a field is required. The value can also be a string to be used as the required error messageschema
An array of data that emulate the column structures that Cake\Database\Schema\Schema uses. This array allows you to control the inferred type for fields and allows auto generation of attributes like maxlength, step and other HTML attributes. If you want primary key/id detection to work. Make sure you have provided a _constraints
array that contains primary
. See below for an example.errors
An array of validation errors. Errors should be nested following the dot separated paths you access your fields with.$article = [ 'data' => [ 'id' => '1', 'title' => 'First post!', ], 'schema' => [ 'id' => ['type' => 'integer'], 'title' => ['type' => 'string', 'length' => 255], '_constraints' => [ 'primary' => ['type' => 'primary', 'columns' => ['id']] ] ], 'defaults' => [ 'title' => 'Default title', ], 'required' => [ 'id' => true, // will use default required message 'title' => 'Please enter a title', 'body' => false, ], ];
array<string>
['length', 'precision', 'comment', 'null', 'default']
array<string, mixed>
Context data for this object.
Constructor.
Get an associative array of other attributes for a field name.
Get the errors for a given field
Get the field names of the top level object in this context.
Get field length from validation
Get the fields used in the context as a primary key.
Gets the default "required" error message for a field
Check whether a field has an error attached to it
Returns whether this form is for a create operation.
Returns true if the passed field name is part of the primary key for this context
Check if a given field is 'required'.
Get the fields used in the context as a primary key.
Strips out any numeric nesting
Get the abstract field type for a given field name.
Get the current value for a given field.
__construct(array $context)
Constructor.
array
$context Context info.
attributes(string $field): array
Get an associative array of other attributes for a field name.
string
$field A dot separated path to get additional data on.
array
error(string $field): array
Get the errors for a given field
string
$field A dot separated path to check errors on.
array
fieldNames(): array<string>
Get the field names of the top level object in this context.
array<string>
getMaxLength(string $field): int|null
Get field length from validation
In this context class, this is simply defined by the 'length' array.
string
$field A dot separated path to check required-ness for.
int|null
getPrimaryKey(): array<string>
Get the fields used in the context as a primary key.
array<string>
getRequiredMessage(string $field): string|null
Gets the default "required" error message for a field
string
$field string|null
hasError(string $field): bool
Check whether a field has an error attached to it
string
$field A dot separated path to check errors on.
bool
isCreate(): bool
Returns whether this form is for a create operation.
For this method to return true, both the primary key constraint must be defined in the 'schema' data, and the 'defaults' data must contain a value for all fields in the key.
bool
isPrimaryKey(string $field): bool
Returns true if the passed field name is part of the primary key for this context
string
$field bool
isRequired(string $field): bool|null
Check if a given field is 'required'.
In this context class, this is simply defined by the 'required' array.
string
$field A dot separated path to check required-ness for.
bool|null
primaryKey(): array<string>
Get the fields used in the context as a primary key.
array<string>
stripNesting(string $field): string
Strips out any numeric nesting
For example users.0.age will output as users.age
string
$field A dot separated path
string
type(string $field): string|null
Get the abstract field type for a given field name.
string
$field A dot separated path to get a schema type for.
string|null
val(string $field, array<string, mixed> $options = []): mixed
Get the current value for a given field.
This method will coalesce the current data and the 'defaults' array.
string
$field A dot separated path to the field a value is needed for.
array<string, mixed>
$options optional Options:
mixed
Context data for this object.
array<string, mixed>
© 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/4.4/class-Cake.View.Form.ArrayContext.html