W3cubDocs

/CakePHP 3.4

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 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.

    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
Namespace: Cake\View\Form
Location: View/Form/ArrayContext.php

Properties summary

Method Summary

  • __construct() public
    Constructor.
  • attributes() public
    Get an associative array of other attributes for a field name.
  • error() public
    Get the errors for a given field
  • fieldNames() public
    Get the fieldnames of the top level object in this context.
  • hasError() public
    Check whether or not a field has an error attached to it
  • isCreate() public
    Returns whether or not this form is for a create operation.
  • Returns true if the passed field name is part of the primary key for this context
  • isRequired() public
    Check if a given field is 'required'.
  • primaryKey() public
    Get the fields used in the context as a primary key.
  • type() public
    Get the abstract field type for a given field name.
  • val() public
    Get 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

array
An 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

array

An 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

array
A 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

boolean
Returns 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

boolean

Implementation 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

boolean

Implementation 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

boolean

Implementation of

Cake\View\Form\ContextInterface::isRequired()

primaryKey()source public

primaryKey( )

Get the fields used in the context as a primary key.

Returns

array

Implementation of

Cake\View\Form\ContextInterface::primaryKey()

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|string
An 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

mixed

Implementation of

Cake\View\Form\ContextInterface::val()

Properties detail

$_contextsource

protected array

Context data for this object.

$_requestsource

protected Cake\Http\ServerRequest

The request object.

© 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