Class ArrayContext
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:
- dataHolds the current values supplied for the fields.
- defaultsThe 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.
- requiredA 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 message
- schemaAn 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- _constraintsarray that contains- primary. See below for an example.
- errorsAn array of validation errors. Errors should be nested following the dot separated paths you access your fields with.
Example
 $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,
   ],
 ];Property Summary
- 
        $_context protectedarrayContext data for this object. 
Method Summary
- 
          __construct() publicConstructor. 
- 
          attributes() publicGet an associative array of other attributes for a field name. 
- 
          error() publicGet the errors for a given field 
- 
          fieldNames() publicGet the field names of the top level object in this context. 
- 
          getMaxLength() publicGet field length from validation 
- 
          getPrimaryKey() publicGet the fields used in the context as a primary key. 
- 
          getRequiredMessage() publicGets the default "required" error message for a field 
- 
          hasError() publicCheck whether or not a field has an error attached to it 
- 
          isCreate() publicReturns whether or not this form is for a create operation. 
- 
          isPrimaryKey() publicReturns true if the passed field name is part of the primary key for this context 
- 
          isRequired() publicCheck if a given field is 'required'. 
- 
          primaryKey() public deprecatedGet the fields used in the context as a primary key. 
- 
          stripNesting() protectedStrips out any numeric nesting 
- 
          type() publicGet the abstract field type for a given field name. 
- 
          val() publicGet the current value for a given field. 
Method Detail
__construct() ¶ public
__construct(array $context)Constructor.
Parameters
- 
                array$context
- Context info. 
attributes() ¶ public
attributes(string $field): arrayGet an associative array of other attributes for a field name.
Parameters
- 
                string$field
- A dot separated path to get additional data on. 
Returns
arrayAn array of data describing the additional attributes on a field.
error() ¶ public
error(string $field): arrayGet the errors for a given field
Parameters
- 
                string$field
- A dot separated path to check errors on. 
Returns
arrayAn array of errors, an empty array will be returned when the context has no errors.
fieldNames() ¶ public
fieldNames(): string[]Get the field names of the top level object in this context.
Returns
string[]getMaxLength() ¶ public
getMaxLength(string $field): int|nullGet field length from validation
In this context class, this is simply defined by the 'length' array.
Parameters
- 
                string$field
- A dot separated path to check required-ness for. 
Returns
int|nullgetPrimaryKey() ¶ public
getPrimaryKey(): string[]Get the fields used in the context as a primary key.
Returns
string[]getRequiredMessage() ¶ public
getRequiredMessage(string $field): string|nullGets the default "required" error message for a field
Parameters
- 
                string$field
Returns
string|nullhasError() ¶ public
hasError(string $field): boolCheck whether or not a field has an error attached to it
Parameters
- 
                string$field
- A dot separated path to check errors on. 
Returns
boolReturns true if the errors for the field are not empty.
isCreate() ¶ public
isCreate(): boolReturns whether or not 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.
Returns
boolisPrimaryKey() ¶ public
isPrimaryKey(string $field): boolReturns true if the passed field name is part of the primary key for this context
Parameters
- 
                string$field
Returns
boolisRequired() ¶ public
isRequired(string $field): bool|nullCheck if a given field is 'required'.
In this context class, this is simply defined by the 'required' array.
Parameters
- 
                string$field
- A dot separated path to check required-ness for. 
Returns
bool|nullprimaryKey() ¶ public
primaryKey(): string[]Get the fields used in the context as a primary key.
Returns
string[]stripNesting() ¶ protected
stripNesting(string $field): stringStrips out any numeric nesting
For example users.0.age will output as users.age
Parameters
- 
                string$field
- A dot separated path 
Returns
stringA string with stripped numeric nesting
type() ¶ public
type(string $field): string|nullGet the abstract field type for a given field name.
Parameters
- 
                string$field
- A dot separated path to get a schema type for. 
Returns
string|nullAn abstract data type or null.
See Also
val() ¶ public
val(string $field, array $options = []): mixedGet the current value for a given field.
This method will coalesce the current data and the 'defaults' array.
Parameters
- 
                string$field
- A dot separated path to the field a value is needed for. 
- 
                array$options optional
- Options: 
Returns
mixed