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:
-
defaults
The default values for fields. These values will be used when there is no request 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. -
schema
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 containsprimary
. 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.Example
$data = [ 'schema' => [ 'id' => ['type' => 'integer'], 'title' => ['type' => 'string', 'length' => 255], '_constraints' => [ 'primary' => ['type' => 'primary', 'columns' => ['id']] ] ], 'defaults' => [ 'id' => 1, 'title' => 'First post!', ] ];
- Cake\View\Form\ArrayContext implements Cake\View\Form\ContextInterface
Properties summary
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 fieldnames of the top level object in this context.
- 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() publicGet 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()source public
__construct( Cake\Http\ServerRequest $request , array $context )
Constructor.
Parameters
-
Cake\Http\ServerRequest
$request
- The request object.
- array
$context
- Context info.
attributes()source public
attributes( string $field )
Get 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.
Implementation of
Cake\View\Form\ContextInterface::attributes()
error()source public
error( string $field )
Get 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.
Implementation of
Cake\View\Form\ContextInterface::error()
fieldNames()source public
fieldNames( )
Get the fieldnames of the top level object in this context.
Returns
arrayA list of the field names in the context.
Implementation of
Cake\View\Form\ContextInterface::fieldNames()
hasError()source public
hasError( string $field )
Check whether or not a field has an error attached to it
Parameters
- string
$field
- A dot separated path to check errors on.
Returns
booleanReturns true if the errors for the field are not empty.
Implementation of
Cake\View\Form\ContextInterface::hasError()
isCreate()source public
isCreate( )
Returns 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
booleanImplementation of
Cake\View\Form\ContextInterface::isCreate()
isPrimaryKey()source public
isPrimaryKey( string $field )
Returns true if the passed field name is part of the primary key for this context
Parameters
- string
$field
A dot separated path to the field a value is needed for.
Returns
booleanImplementation of
Cake\View\Form\ContextInterface::isPrimaryKey()
isRequired()source public
isRequired( string $field )
Check 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
booleanImplementation of
Cake\View\Form\ContextInterface::isRequired()
primaryKey()source public
primaryKey( )
Get the fields used in the context as a primary key.
Returns
arrayImplementation of
Cake\View\Form\ContextInterface::primaryKey()
stripNesting()source protected
stripNesting( string $field )
Strips 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()source public
type( string $field )
Get the abstract field type for a given field name.
Parameters
- string
$field
- A dot separated path to get a schema type for.
Returns
null|stringAn abstract data type or null.
See
Cake\Database\Type
Implementation of
Cake\View\Form\ContextInterface::type()
val()source public
val( string $field , array $options [] )
Get the current value for a given field.
This method will coalesce the current request data and the 'defaults' array.
Parameters
- string
$field
A dot separated path to the field a value is needed for.
- array
$options
optional [] Options: -
default
: Default value to return if no value found in request data or context record. -schemaDefault
: Boolean indicating whether default value from context's schema should be used if it's not explicitly provided.
Returns
mixedImplementation of
Cake\View\Form\ContextInterface::val()
Properties detail
© 2005–2017 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.4/class-Cake.View.Form.ArrayContext.html