Class FormHelper
Form helper library.
Automatic generation of HTML FORMs from given data.
Copyright: Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
License: MIT License
Link: http://book.cakephp.org/2.0/en/core-libraries/helpers/form.html
Located at Cake/View/Helper/FormHelper.php
Method Detail
__callsource public
__call( string $method , array $params )
Missing method handler - implements various simple input types. Is used to create inputs of various types. e.g. $this->Form->text();
will create <input type="text" />
while $this->Form->range();
will create <input type="range" />
Usage
$this->Form->search('User.query', array('value' => 'test'));
Will make an input like:
<input type="search" id="UserQuery" name="data[User][query]" value="test" />
The first argument to an input type should always be the fieldname, in Model.field
format. The second argument should always be an array of attributes for the input.
Parameters
- string
$method
- Method name / input type to make.
- array
$params
- Parameters for the method call
Returns
string
Formatted input method.
Throws
CakeException
When there are no params for the method call.
Overrides
Helper::__call()
__constructsource public
__construct( View $View , array $settings array() )
Copies the validationErrors variable from the View object into this instance
Parameters
-
View
$View
- The View this helper is being attached to.
- array
$settings
optional array() - Configuration settings for the helper.
Overrides
Helper::__construct()
_csrfFieldsource protected
_csrfField( )
Return a CSRF input if the _Token is present. Used to secure forms in conjunction with SecurityComponent
Returns
string
string
_dateTimeSelectedsource protected
_dateTimeSelected( string $select , string $fieldName , array $attributes )
Selects values for dateTime selects.
Parameters
- string
$select
- Name of element field. ex. 'day'
- string
$fieldName
- Name of fieldName being generated ex. Model.created
- array
$attributes
- Array of attributes, must contain 'empty' key.
Returns
array
Attributes array with currently selected value.
_divOptionssource protected
_divOptions( array $options )
Generate div options for input
Parameters
- array
$options
- Options list.
Returns
array
array
_extractOptionsource protected
_extractOption( string $name , array $options , mixed $default null )
Extracts a single option from an options array.
Parameters
- string
$name
- The name of the option to pull out.
- array
$options
- The array of options you want to extract.
- mixed
$default
optional null - The default option value
Returns
mixed
the contents of the option or default
_generateOptionssource protected
_generateOptions( string $name , array $options array() )
Generates option lists for common <select /> menus
Parameters
- string
$name
- List type name.
- array
$options
optional array() - Options list.
Returns
array
array
_getDateTimeValuesource protected
_getDateTimeValue( string|array $value , integer $timeFormat )
Parse the value for a datetime selected value
Parameters
- string|array
$value
- The selected value.
- integer
$timeFormat
- The time format
Returns
array
Array of selected value.
_getFormatsource protected
_getFormat( array $options )
Generate format options
Parameters
- array
$options
- Options list.
Returns
array
array
_getInputsource protected
_getInput( array $args )
Generates an input element
Parameters
- array
$args
- The options for the input element
Returns
string
The generated input element
_getLabelsource protected
_getLabel( string $fieldName , array $options )
Generate label for input
Parameters
- string
$fieldName
- Field name.
- array
$options
- Options list.
Returns
boolean|string
false or Generated label element
_getModelsource protected
_getModel( string $model )
Guess the location for a model based on its name and tries to create a new instance or get an already created instance of the model
Parameters
- string
$model
- Model name.
Returns
Model|null
Model instance
_initInputFieldsource protected
_initInputField( string $field , array $options array() )
Sets field defaults and adds field to form security input hash. Will also add a 'form-error' class if the field contains validation errors.
Options
-
secure
- boolean whether or not the field should be added to the security fields. Disabling the field using thedisabled
option, will also omit the field from being part of the hashed key.
This method will convert a numerically indexed 'disabled' into an associative value. FormHelper's internals expect associative options.
Parameters
- string
$field
- Name of the field to initialize options for.
- array
$options
optional array() - Array of options to append options into.
Returns
array
Array of options for the input.
Overrides
Helper::_initInputField()
_inputLabelsource protected
_inputLabel( string $fieldName , string|array $label , array $options )
Generate a label for an input() call.
$options can contain a hash of id overrides. These overrides will be used instead of the generated values if present.
Parameters
- string
$fieldName
- Field name.
- string|array
$label
- Label text or array with text and options.
- array
$options
- Options for the label element. 'NONE' option is deprecated and will be removed in 3.0
Returns
string
Generated label element
_introspectModelsource protected
_introspectModel( string $model , string $key , string $field null )
Inspects the model properties to extract information from them. Currently it can extract information from the the fields, the primary key and required fields
The $key parameter accepts the following list of values:
- key: Returns the name of the primary key for the model
- fields: Returns the model schema
- validates: returns the list of fields that are required
- errors: returns the list of validation errors
If the $field parameter is passed if will return the information for that sole field.
$this->_introspectModel('Post', 'fields', 'title');
will return the schema information for title column
Parameters
- string
$model
- name of the model to extract information from
- string
$key
- name of the special information key to obtain (key, fields, validates, errors)
- string
$field
optional null - name of the model field to get information from
Returns
mixed
information extracted for the special key and field in a model
_isRequiredFieldsource protected
_isRequiredField( CakeValidationSet $validationRules )
Returns if a field is required to be filled based on validation properties from the validating object.
Parameters
-
CakeValidationSet
$validationRules
- Validation rules set.
Returns
boolean
true if field is required to be filled, false otherwise
_lastActionsource protected
_lastAction( string|array $url )
Sets the last created form action.
Parameters
- string|array
$url
- URL.
_magicOptionssource protected
_magicOptions( array $options )
Magically set option type and corresponding options
Parameters
- array
$options
- Options list.
Returns
array
array
_maxLengthsource protected
_maxLength( array $options )
Calculates maxlength option
Parameters
- array
$options
- Options list.
Returns
array
array
_namesource protected
_name( array $options array() , string $field null , string $key 'name' )
Gets the input field name for the current tag
Parameters
- array
$options
optional array() - Options list.
- string
$field
optional null - Field name.
- string
$key
optional 'name' - Key name.
Returns
array
array
Overrides
Helper::_name()
_optionsOptionssource protected
_optionsOptions( array $options )
Generates list of options for multiple select
Parameters
- array
$options
- Options list.
Returns
array
array
_parseOptionssource protected
_parseOptions( array $options )
Generates input options array
Parameters
- array
$options
- Options list.
Returns
array
Options
_securesource protected
_secure( boolean $lock , string|array $field null , mixed $value null )
Determine which fields of a form should be used for hash. Populates $this->fields
Parameters
- boolean
$lock
- Whether this field should be part of the validation or excluded as part of the unlockedFields.
- string|array
$field
optional null - Reference to field to be secured. Should be dot separated to indicate nesting.
- mixed
$value
optional null - Field value, if value should not be tampered with.
_secureFieldNamesource protected
_secureFieldName( array $options )
Get the field name for use with _secure().
Parses the name attribute to create a dot separated name value for use in secured field hash.
Parameters
- array
$options
- An array of options possibly containing a name key.
Returns
string|null
string|null
_selectOptionssource protected
_selectOptions( array $elements array() , array $parents array() , boolean $showParents null , array $attributes array() )
Returns an array of formatted OPTION/OPTGROUP elements
Parameters
- array
$elements
optional array() - Elements to format.
- array
$parents
optional array() - Parents for OPTGROUP.
- boolean
$showParents
optional null - Whether to show parents.
- array
$attributes
optional array() - HTML attributes.
Returns
array
array
buttonsource public
button( string $title , array $options array() )
Creates a <button>
tag. The type attribute defaults to type="submit"
You can change it to a different value by using $options['type']
.
Options:
-
escape
- HTML entity encode the $title of the button. Defaults to false.
Parameters
- string
$title
- The button's caption. Not automatically HTML encoded
- array
$options
optional array() - Array of options and HTML attributes.
Returns
string
A HTML button tag.
Link
http://book.cakephp.org/2.0/en/core-libraries/helpers/form.html#FormHelper::buttoncheckboxsource public
checkbox( string $fieldName , array $options array() )
Creates a checkbox input widget.
Options:
-
value
- the value of the checkbox -
checked
- boolean indicate that this checkbox is checked. -
hiddenField
- boolean to indicate if you want the results of checkbox() to include a hidden input with a value of ''. -
disabled
- create a disabled input. -
default
- Set the default value for the checkbox. This allows you to start checkboxes as checked, without having to check the POST data. A matching POST data value, will overwrite the default value.
Parameters
- string
$fieldName
- Name of a field, like this "Modelname.fieldname"
- array
$options
optional array() - Array of HTML attributes.
Returns
string
An HTML text input element.
Link
http://book.cakephp.org/2.0/en/core-libraries/helpers/form.html#options-for-select-checkbox-and-radio-inputscreatesource public
create( mixed $model null , array $options array() )
Returns an HTML FORM element.
Options:
-
type
Form method defaults to POST -
action
The controller action the form submits to, (optional). -
url
The URL the form submits to. Can be a string or a URL array. If you use 'url' you should leave 'action' undefined. -
default
Allows for the creation of Ajax forms. Set this to false to prevent the default event handler. Will create an onsubmit attribute if it doesn't not exist. If it does, default action suppression will be appended. -
onsubmit
Used in conjunction with 'default' to create ajax forms. -
inputDefaults
set the default $options for FormHelper::input(). Any options that would be set when using FormHelper::input() can be set here. Options set withinputDefaults
can be overridden when calling input() -
encoding
Set the accept-charset encoding for the form. Defaults toConfigure::read('App.encoding')
Parameters
- mixed
$model
optional null - The model name for which the form is being defined. Should include the plugin name for plugin models. e.g.
ContactManager.Contact
. If an array is passed and $options argument is empty, the array will be used as options. Iffalse
no model is used. - array
$options
optional array() - An array of html attributes and options.
Returns
string
A formatted opening FORM tag.
Link
http://book.cakephp.org/2.0/en/core-libraries/helpers/form.html#options-for-createdateTimesource public
dateTime( string $fieldName , string $dateFormat 'DMY' , string $timeFormat '12' , array $attributes array() )
Returns a set of SELECT elements for a full datetime setup: day, month and year, and then time.
Attributes:
-
monthNames
If false, 2 digit numbers will be used instead of text. If an array, the given array will be used. -
minYear
The lowest year to use in the year select -
maxYear
The maximum year to use in the year select -
interval
The interval for the minutes select. Defaults to 1 -
separator
The contents of the string between select elements. Defaults to '-' -
empty
- If true, the empty select option is shown. If a string, that string is displayed as the empty element. -
round
- Set toup
ordown
if you want to force rounding in either direction. Defaults to null. -
value
|default
The default value to be used by the input. A value in$this->data
matching the field name will override this value. If no default is providedtime()
will be used.
Parameters
- string
$fieldName
- Prefix name for the SELECT element
- string
$dateFormat
optional 'DMY' - DMY, MDY, YMD, or null to not generate date inputs.
- string
$timeFormat
optional '12' - 12, 24, or null to not generate time inputs.
- array
$attributes
optional array() - Array of Attributes
Returns
string
Generated set of select boxes for the date and time formats chosen.
Link
http://book.cakephp.org/2.0/en/core-libraries/helpers/form.html#FormHelper::dateTimedaysource public
day( string $fieldName null , array $attributes array() )
Returns a SELECT element for days.
Attributes:
-
empty
- If true, the empty select option is shown. If a string, that string is displayed as the empty element. -
value
The selected value of the input.
Parameters
- string
$fieldName
optional null - Prefix name for the SELECT element
- array
$attributes
optional array() - HTML attributes for the select element
Returns
string
A generated day select box.
Link
http://book.cakephp.org/2.0/en/core-libraries/helpers/form.html#FormHelper::daydomIdSuffixsource public
domIdSuffix( string $value , string $type 'html4' )
Generates a valid DOM ID suffix from a string. Also avoids collisions when multiple values are coverted to the same suffix by appending a numeric value.
For pre-HTML5 IDs only characters like a-z 0-9 - _ are valid. HTML5 doesn't have that limitation, but to avoid layout issues it still filters out some sensitive chars.
Parameters
- string
$value
- The value that should be transferred into a DOM ID suffix.
- string
$type
optional 'html4' - Doctype to use. Defaults to html4.
Returns
string
DOM ID
endsource public
end( string|array $options null , array $secureAttributes array() )
Closes an HTML form, cleans up values set by FormHelper::create(), and writes hidden input fields where appropriate.
If $options is set a form submit button will be created. Options can be either a string or an array.
array usage: array('label' => 'save'); value="save" array('label' => 'save', 'name' => 'Whatever'); value="save" name="Whatever" array('name' => 'Whatever'); value="Submit" name="Whatever" array('label' => 'save', 'name' => 'Whatever', 'div' => 'good') <div class="good"> value="save" name="Whatever" array('label' => 'save', 'name' => 'Whatever', 'div' => array('class' => 'good')); <div class="good"> value="save" name="Whatever"
If $secureAttributes is set, these html attributes will be merged into the hidden input tags generated for the Security Component. This is especially useful to set HTML5 attributes like 'form'
Parameters
- string|array
$options
optional null - as a string will use $options as the value of button,
- array
$secureAttributes
optional array() - will be passed as html attributes into the hidden input elements generated for the Security Component.
Returns
string
a closing FORM tag optional submit button.
Link
http://book.cakephp.org/2.0/en/core-libraries/helpers/form.html#closing-the-formerrorsource public
error( string $field , string|array $text null , array $options array() )
Returns a formatted error message for given FORM field, NULL if no errors.
Options:
-
escape
boolean - Whether or not to html escape the contents of the error. -
wrap
mixed - Whether or not the error message should be wrapped in a div. If a string, will be used as the HTML tag to use. -
class
string - The class name for the error message
Parameters
- string
$field
- A field name, like "Modelname.fieldname"
- string|array
$text
optional null - Error message as string or array of messages. If array contains
attributes
key it will be used as options for error container - array
$options
optional array() - Rendering options for <div /> wrapper tag
Returns
string|null
If there are errors this method returns an error message, otherwise null.
Link
http://book.cakephp.org/2.0/en/core-libraries/helpers/form.html#FormHelper::errorfilesource public
file( string $fieldName , array $options array() )
Creates file input widget.
Parameters
- string
$fieldName
- Name of a field, in the form "Modelname.fieldname"
- array
$options
optional array() - Array of HTML attributes.
Returns
string
A generated file input.
Link
http://book.cakephp.org/2.0/en/core-libraries/helpers/form.html#FormHelper::filehiddensource public
hidden( string $fieldName , array $options array() )
Creates a hidden input field.
Parameters
- string
$fieldName
- Name of a field, in the form of "Modelname.fieldname"
- array
$options
optional array() - Array of HTML attributes.
Returns
string
A generated hidden input
Link
http://book.cakephp.org/2.0/en/core-libraries/helpers/form.html#FormHelper::hiddenhoursource public
hour( string $fieldName , boolean $format24Hours false , array $attributes array() )
Returns a SELECT element for hours.
Attributes:
-
empty
- If true, the empty select option is shown. If a string, that string is displayed as the empty element. -
value
The selected value of the input.
Parameters
- string
$fieldName
- Prefix name for the SELECT element
- boolean
$format24Hours
optional false - True for 24 hours format
- array
$attributes
optional array() - List of HTML attributes
Returns
string
Completed hour select input
Link
http://book.cakephp.org/2.0/en/core-libraries/helpers/form.html#FormHelper::hourinputsource public
input( string $fieldName , array $options array() )
Generates a form input element complete with label and wrapper div
Options
See each field type method for more information. Any options that are part of $attributes or $options for the different type methods can be included in $options
for input().i Additionally, any unknown keys that are not in the list below, or part of the selected type's options will be treated as a regular html attribute for the generated input.
-
type
- Force the type of widget you want. e.g.type => 'select'
-
label
- Either a string label, or an array of options for the label. See FormHelper::label(). -
div
- Eitherfalse
to disable the div, or an array of options for the div.
See HtmlHelper::div() for more options.
-
options
- For widgets that take options e.g. radio, select. -
error
- Control the error message that is produced. Set tofalse
to disable any kind of error reporting (field error and error messages). -
errorMessage
- Boolean to control rendering error messages (field error will still occur). -
empty
- String or boolean to enable empty select box options. -
before
- Content to place before the label + input. -
after
- Content to place after the label + input. -
between
- Content to place between the label + input. -
format
- Format template for element order. Any element that is not in the array, will not be in the output. - Default input format order: array('before', 'label', 'between', 'input', 'after', 'error')
- Default checkbox format order: array('before', 'input', 'between', 'label', 'after', 'error')
- Hidden input will not be formatted
- Radio buttons cannot have the order of input and label elements controlled with these settings.
Parameters
- string
$fieldName
- This should be "Modelname.fieldname"
- array
$options
optional array() - Each type of input takes different options.
Returns
string
Completed form widget.
Link
http://book.cakephp.org/2.0/en/core-libraries/helpers/form.html#creating-form-elementsinputDefaultssource public
inputDefaults( array $defaults null , boolean $merge false )
Set/Get inputDefaults for form elements
Parameters
- array
$defaults
optional null - New default values
- boolean
$merge
optional false - Merge with current defaults
Returns
array
inputDefaults
inputssource public
inputs( array $fields null , array $blacklist null , array $options array() )
Generate a set of inputs for $fields
. If $fields is null the fields of current model will be used.
You can customize individual inputs through $fields
.
$this->Form->inputs(array( 'name' => array('label' => 'custom label') ));
In addition to controller fields output, $fields
can be used to control legend and fieldset rendering. $this->Form->inputs('My legend');
Would generate an input set with a custom legend. Passing fieldset
and legend
key in $fields
array has been deprecated since 2.3, for more fine grained control use the fieldset
and legend
keys in $options
param.
Parameters
- array
$fields
optional null - An array of fields to generate inputs for, or null.
- array
$blacklist
optional null - A simple array of fields to not create inputs for.
- array
$options
optional array() - Options array. Valid keys are: -
fieldset
Set to false to disable the fieldset. If a string is supplied it will be used as the class name for the fieldset element. -legend
Set to false to disable the legend for the generated input set. Or supply a string to customize the legend text.
Returns
string
Completed form inputs.
Link
http://book.cakephp.org/2.0/en/core-libraries/helpers/form.html#FormHelper::inputsisFieldErrorsource public
isFieldError( string $field )
Returns true if there is an error for the given field, otherwise false
Parameters
- string
$field
- This should be "Modelname.fieldname"
Returns
boolean
If there are errors this method returns true, else false.
Link
http://book.cakephp.org/2.0/en/core-libraries/helpers/form.html#FormHelper::isFieldErrorlabelsource public
label( string $fieldName null , string $text null , array|string $options array() )
Returns a formatted LABEL element for HTML FORMs. Will automatically generate a for
attribute if one is not provided.
Options
-
for
- Set the for attribute, if its not defined the for attribute will be generated from the $fieldName parameter using FormHelper::domId().
Examples:
The text and for attribute are generated off of the fieldname
echo $this->Form->label('Post.published'); <label for="PostPublished">Published</label>
Custom text:
echo $this->Form->label('Post.published', 'Publish'); <label for="PostPublished">Publish</label>
Custom class name:
echo $this->Form->label('Post.published', 'Publish', 'required'); <label for="PostPublished" class="required">Publish</label>
Custom attributes:
echo $this->Form->label('Post.published', 'Publish', array( 'for' => 'post-publish' )); <label for="post-publish">Publish</label>
Warning Unlike most FormHelper methods, this method does not automatically escape the $text parameter. You must escape the $text parameter yourself if you are using user supplied data.
Parameters
- string
$fieldName
optional null - This should be "Modelname.fieldname"
- string
$text
optional null - Text that will appear in the label field. If $text is left undefined the text will be inflected from the fieldName.
- array|string
$options
optional array() - An array of HTML attributes, or a string, to be used as a class name.
Returns
string
The formatted LABEL element
Link
http://book.cakephp.org/2.0/en/core-libraries/helpers/form.html#FormHelper::labelmeridiansource public
meridian( string $fieldName , array $attributes array() )
Returns a SELECT element for AM or PM.
Attributes:
-
empty
- If true, the empty select option is shown. If a string, that string is displayed as the empty element. -
value
The selected value of the input.
Parameters
- string
$fieldName
- Prefix name for the SELECT element
- array
$attributes
optional array() - Array of Attributes
Returns
string
Completed meridian select input
Link
http://book.cakephp.org/2.0/en/core-libraries/helpers/form.html#FormHelper::meridianminutesource public
minute( string $fieldName , array $attributes array() )
Returns a SELECT element for minutes.
Attributes:
-
empty
- If true, the empty select option is shown. If a string, that string is displayed as the empty element. -
value
The selected value of the input.
Parameters
- string
$fieldName
- Prefix name for the SELECT element
- array
$attributes
optional array() - Array of Attributes
Returns
string
Completed minute select input.
Link
http://book.cakephp.org/2.0/en/core-libraries/helpers/form.html#FormHelper::minutemonthsource public
month( string $fieldName , array $attributes array() )
Returns a SELECT element for months.
Attributes:
-
monthNames
- If false, 2 digit numbers will be used instead of text. If an array, the given array will be used. -
empty
- If true, the empty select option is shown. If a string, that string is displayed as the empty element. -
value
The selected value of the input.
Parameters
- string
$fieldName
- Prefix name for the SELECT element
- array
$attributes
optional array() - Attributes for the select element
Returns
string
A generated month select dropdown.
Link
http://book.cakephp.org/2.0/en/core-libraries/helpers/form.html#FormHelper::monthpostButtonsource public
postButton( string $title , string|array $url , array $options array() )
Create a <button>
tag with a surrounding <form>
that submits via POST.
This method creates a <form>
element. So do not use this method in an already opened form. Instead use FormHelper::submit() or FormHelper::button() to create buttons inside opened forms.
Options:
-
data
- Array with key/value to pass in input hidden - Other options is the same of button method.
Parameters
- string
$title
- The button's caption. Not automatically HTML encoded
- string|array
$url
- URL as string or array
- array
$options
optional array() - Array of options and HTML attributes.
Returns
string
A HTML button tag.
Link
http://book.cakephp.org/2.0/en/core-libraries/helpers/form.html#FormHelper::postButtonpostLinksource public
postLink( string $title , string|array $url null , array $options array() , boolean|string $confirmMessage false )
Creates an HTML link, but access the URL using the method you specify (defaults to POST). Requires javascript to be enabled in browser.
This method creates a <form>
element. If you want to use this method inside of an existing form, you must use the inline
or block
options so that the new form is being set to a view block that can be rendered outside of the main form.
If all you are looking for is a button to submit your form, then you should use FormHelper::submit()
instead.
Options:
-
data
- Array with key/value to pass in input hidden -
method
- Request method to use. Set to 'delete' to simulate HTTP/1.1 DELETE request. Defaults to 'post'. -
confirm
- Can be used instead of $confirmMessage. -
inline
- Whether or not the associated form tag should be output inline. Set to false to have the form tag appended to the 'postLink' view block. Defaults to true. -
block
- Choose a custom block to append the form tag to. Using this option will override the inline option. - Other options are the same of HtmlHelper::link() method.
- The option
onclick
will be replaced.
Parameters
- string
$title
- The content to be wrapped by <a> tags.
- string|array
$url
optional null - Cake-relative URL or array of URL parameters, or external URL (starts with http://)
- array
$options
optional array() - Array of HTML attributes.
- boolean|string
$confirmMessage
optional false - JavaScript confirmation message. This argument is deprecated as of 2.6. Use
confirm
key in $options instead.
Returns
string
An
<a />
element.Link
http://book.cakephp.org/2.0/en/core-libraries/helpers/form.html#FormHelper::postLinkradiosource public
radio( string $fieldName , array $options array() , array $attributes array() )
Creates a set of radio widgets. Will create a legend and fieldset by default. Use $options to control this
You can also customize each radio input element using an array of arrays:
$options = array( array('name' => 'United states', 'value' => 'US', 'title' => 'My title'), array('name' => 'Germany', 'value' => 'DE', 'class' => 'de-de', 'title' => 'Another title'), );
Attributes:
-
separator
- define the string in between the radio buttons -
between
- the string between legend and input set or array of strings to insert strings between each input block -
legend
- control whether or not the widget set has a fieldset & legend -
value
- indicate a value that is should be checked -
label
- boolean to indicate whether or not labels for widgets show be displayed -
hiddenField
- boolean to indicate if you want the results of radio() to include a hidden input with a value of ''. This is useful for creating radio sets that non-continuous -
disabled
- Set totrue
ordisabled
to disable all the radio buttons. -
empty
- Set totrue
to create an input with the value '' as the first option. Whentrue
the radio label will be 'empty'. Set this option to a string to control the label value.
Parameters
- string
$fieldName
- Name of a field, like this "Modelname.fieldname"
- array
$options
optional array() - Radio button options array.
- array
$attributes
optional array() - Array of HTML attributes, and special attributes above.
Returns
string
Completed radio widget set.
Link
http://book.cakephp.org/2.0/en/core-libraries/helpers/form.html#options-for-select-checkbox-and-radio-inputssecuresource public
secure( array|null $fields array() , array $secureAttributes array() )
Generates a hidden field with a security hash based on the fields used in the form.
If $secureAttributes is set, these html attributes will be merged into the hidden input tags generated for the Security Component. This is especially useful to set HTML5 attributes like 'form'.
Parameters
- array|null
$fields
optional array() - If set specifies the list of fields to use when generating the hash, else $this->fields is being used.
- array
$secureAttributes
optional array() - will be passed as html attributes into the hidden input elements generated for the Security Component.
Returns
string|null
A hidden input field with a security hash, otherwise null.
Link
http://book.cakephp.org/2.0/en/core-libraries/helpers/form.html#FormHelper::secureselectsource public
select( string $fieldName , array $options array() , array $attributes array() )
Returns a formatted SELECT element.
Attributes:
-
showParents
- If included in the array and set to true, an additional option element will be added for the parent of each option group. You can set an option with the same name and it's key will be used for the value of the option. -
multiple
- show a multiple select box. If set to 'checkbox' multiple checkboxes will be created instead. -
empty
- If true, the empty select option is shown. If a string, that string is displayed as the empty element. -
escape
- If true contents of options will be HTML entity encoded. Defaults to true. -
value
The selected value of the input. -
class
- When using multiple = checkbox the class name to apply to the divs. Defaults to 'checkbox'. -
disabled
- Control the disabled attribute. When creating a select box, set to true to disable the select box. When creating checkboxes,true
will disable all checkboxes. You can also set disabled to a list of values you want to disable when creating checkboxes.
Using options
A simple array will create normal options:
$options = array(1 => 'one', 2 => 'two); $this->Form->select('Model.field', $options));
While a nested options array will create optgroups with options inside them.
$options = array( 1 => 'bill', 'fred' => array( 2 => 'fred', 3 => 'fred jr.' ) ); $this->Form->select('Model.field', $options);
In the above 2 => 'fred'
will not generate an option element. You should enable the showParents
attribute to show the fred option.
If you have multiple options that need to have the same value attribute, you can use an array of arrays to express this:
$options = array( array('name' => 'United states', 'value' => 'USA'), array('name' => 'USA', 'value' => 'USA'), );
Parameters
- string
$fieldName
- Name attribute of the SELECT
- array
$options
optional array() - Array of the OPTION elements (as 'value'=>'Text' pairs) to be used in the SELECT element
- array
$attributes
optional array() - The HTML attributes of the select element.
Returns
string
Formatted SELECT element
Link
http://book.cakephp.org/2.0/en/core-libraries/helpers/form.html#options-for-select-checkbox-and-radio-inputssubmitsource public
submit( string $caption null , array $options array() )
Creates a submit button element. This method will generate <input />
elements that can be used to submit, and reset forms by using $options. image submits can be created by supplying an image path for $caption.
Options
-
div
- Include a wrapping div? Defaults to true. Accepts sub options similar to FormHelper::input(). -
before
- Content to include before the input. -
after
- Content to include after the input. -
type
- Set to 'reset' for reset inputs. Defaults to 'submit' - Other attributes will be assigned to the input element.
Options
-
div
- Include a wrapping div? Defaults to true. Accepts sub options similar to FormHelper::input(). - Other attributes will be assigned to the input element.
Parameters
- string
$caption
optional null - The label appearing on the button OR if string contains :// or the extension .jpg, .jpe, .jpeg, .gif, .png use an image if the extension exists, AND the first character is /, image is relative to webroot, OR if the first character is not /, image is relative to webroot/img.
- array
$options
optional array() - Array of options. See above.
Returns
string
A HTML submit button
Link
http://book.cakephp.org/2.0/en/core-libraries/helpers/form.html#FormHelper::submittagIsInvalidsource public
tagIsInvalid( )
Returns false if given form field described by the current entity has no errors. Otherwise it returns the validation message
Returns
mixed
Either false when there are no errors, or an array of error strings. An error string could be ''.
Link
http://book.cakephp.org/2.0/en/core-libraries/helpers/form.html#FormHelper::tagIsInvalidtextareasource public
textarea( string $fieldName , array $options array() )
Creates a textarea widget.
Options:
-
escape
- Whether or not the contents of the textarea should be escaped. Defaults to true.
Parameters
- string
$fieldName
- Name of a field, in the form "Modelname.fieldname"
- array
$options
optional array() - Array of HTML attributes, and special options above.
Returns
string
A generated HTML text input element
Link
http://book.cakephp.org/2.0/en/core-libraries/helpers/form.html#FormHelper::textareaunlockFieldsource public
unlockField( string $name null )
Add to or get the list of fields that are currently unlocked. Unlocked fields are not included in the field hash used by SecurityComponent unlocking a field once its been added to the list of secured fields will remove it from the list of fields.
Parameters
- string
$name
optional null - The dot separated name for the field.
Returns
mixed
Either null, or the list of fields.
Link
http://book.cakephp.org/2.0/en/core-libraries/helpers/form.html#FormHelper::unlockFieldyearsource public
year( string $fieldName , integer $minYear null , integer $maxYear null , array $attributes array() )
Returns a SELECT element for years
Attributes:
-
empty
- If true, the empty select option is shown. If a string, that string is displayed as the empty element. -
orderYear
- Ordering of year values in select options. Possible values 'asc', 'desc'. Default 'desc' -
value
The selected value of the input.
Parameters
- string
$fieldName
- Prefix name for the SELECT element
- integer
$minYear
optional null - First year in sequence
- integer
$maxYear
optional null - Last year in sequence
- array
$attributes
optional array() - Attribute array for the select elements.
Returns
string
Completed year select input
Link
http://book.cakephp.org/2.0/en/core-libraries/helpers/form.html#FormHelper::yearMethods inherited from Helper
__getsource public
__get( string $name )
Lazy loads helpers. Provides access to deprecated request properties as well.
Deprecated
3.0.0 Accessing request properties through this method is deprecated and will be removed in 3.0.Parameters
- string
$name
- Name of the property being accessed.
Returns
mixed
Helper or property found at $name
__setsource public
__set( string $name , mixed $value )
Provides backwards compatibility access for setting values to the request object.
Deprecated
3.0.0 This method will be removed in 3.0Parameters
- string
$name
- Name of the property being accessed.
- mixed
$value
- Value to set.
_confirmsource protected
_confirm( string $message , string $okCode , string $cancelCode '' , array $options array() )
Returns a string to be used as onclick handler for confirm dialogs.
Parameters
- string
$message
- Message to be displayed
- string
$okCode
- Code to be executed after user chose 'OK'
- string
$cancelCode
optional '' - Code to be executed after user chose 'Cancel'
- array
$options
optional array() - Array of options
Returns
string
onclick JS code
_encodeUrlsource protected
_encodeUrl( string $url )
Encodes a URL for use in HTML attributes.
Parameters
- string
$url
- The URL to encode.
Returns
string
The URL encoded for both URL & HTML contexts.
_formatAttributesource protected
_formatAttribute( string $key , string $value , boolean $escape true )
Formats an individual attribute, and returns the string value of the composed attribute. Works with minimized attributes that have the same value as their name such as 'disabled' and 'checked'
Deprecated
3.0.0 This method will be moved to HtmlHelper in 3.0Parameters
- string
$key
- The name of the attribute to create
- string
$value
- The value of the attribute to create.
- boolean
$escape
optional true - Define if the value must be escaped
Returns
string
The composed attribute.
_parseAttributessource protected
_parseAttributes( array $options , array $exclude null , string $insertBefore ' ' , string $insertAfter null )
Returns a space-delimited string with items of the $options array. If a key of $options array happens to be one of those listed in Helper::$_minimizedAttributes
And its value is one of:
- '1' (string)
- 1 (integer)
- true (boolean)
- 'true' (string)
Then the value will be reset to be identical with key's name. If the value is not one of these 3, the parameter is not output.
'escape' is a special option in that it controls the conversion of attributes to their html-entity encoded equivalents. Set to false to disable html-encoding.
If value for any option key is set to null
or false
, that option will be excluded from output.
Deprecated
3.0.0 This method will be moved to HtmlHelper in 3.0Parameters
- array
$options
- Array of options.
- array
$exclude
optional null - Array of options to be excluded, the options here will not be part of the return.
- string
$insertBefore
optional ' ' - String to be inserted before options.
- string
$insertAfter
optional null - String to be inserted after options.
Returns
string
Composed attributes.
_selectedArraysource protected
_selectedArray( string|array $data , string $key 'id' )
Transforms a recordset from a hasAndBelongsToMany association to a list of selected options for a multiple select element
Parameters
- string|array
$data
- Data array or model name.
- string
$key
optional 'id' - Field name.
Returns
array
array
addClasssource public
addClass( array $options array() , string $class null , string $key 'class' )
Adds the given class to the element options
Parameters
- array
$options
optional array() - Array options/attributes to add a class to
- string
$class
optional null - The class name being added.
- string
$key
optional 'class' - the key to use for class.
Returns
array
Array of options with $key set.
afterLayoutsource public
afterLayout( string $layoutFile )
After layout callback. afterLayout is called after the layout has rendered.
Overridden in subclasses.
Parameters
- string
$layoutFile
- The layout file that was rendered.
afterRendersource public
afterRender( string $viewFile )
After render callback. afterRender is called after the view file is rendered but before the layout has been rendered.
Overridden in subclasses.
Parameters
- string
$viewFile
- The view file that was rendered.
afterRenderFilesource public
afterRenderFile( string $viewFile , string $content )
After render file callback. Called after any view fragment is rendered.
Overridden in subclasses.
Parameters
- string
$viewFile
- The file just be rendered.
- string
$content
- The content that was rendered.
assetTimestampsource public
assetTimestamp( string $path )
Adds a timestamp to a file based resource based on the value of Asset.timestamp
in Configure. If Asset.timestamp is true and debug > 0, or Asset.timestamp === 'force' a timestamp will be added.
Parameters
- string
$path
- The file path to timestamp, the path must be inside WWW_ROOT
Returns
string
Path with a timestamp added, or not.
assetUrlsource public
assetUrl( string|array $path , array $options array() )
Generate URL for given asset file. Depending on options passed provides full URL with domain name. Also calls Helper::assetTimestamp() to add timestamp to local files
Parameters
- string|array
$path
- Path string or URL array
- array
$options
optional array() - Options array. Possible keys:
fullBase
Return full URL with domain namepathPrefix
Path prefix for relative URLsext
Asset extension to appendplugin
False value will prevent parsing path as a plugin
Returns
string
Generated URL
beforeLayoutsource public
beforeLayout( string $layoutFile )
Before layout callback. beforeLayout is called before the layout is rendered.
Overridden in subclasses.
Parameters
- string
$layoutFile
- The layout about to be rendered.
beforeRendersource public
beforeRender( string $viewFile )
Before render callback. beforeRender is called before the view file is rendered.
Overridden in subclasses.
Parameters
- string
$viewFile
- The view file that is going to be rendered
beforeRenderFilesource public
beforeRenderFile( string $viewFile )
Before render file callback. Called before any view fragment is rendered.
Overridden in subclasses.
Parameters
- string
$viewFile
- The file about to be rendered.
cleansource public
clean( string|array $output )
Used to remove harmful tags from content. Removes a number of well known XSS attacks from content. However, is not guaranteed to remove all possibilities. Escaping content is the best way to prevent all possible attacks.
Deprecated
3.0.0 This method will be removed in 3.0Parameters
- string|array
$output
- Either an array of strings to clean or a single string to clean.
Returns
string|array|null
Cleaned content for output
domIdsource public
domId( array|string $options null , string $id 'id' )
Generates a DOM ID for the selected element, if one is not set. Uses the current View::entity() settings to generate a CamelCased id attribute.
Parameters
- array|string
$options
optional null - Either an array of html attributes to add $id into, or a string with a view entity path to get a domId for.
- string
$id
optional 'id' - The name of the 'id' attribute.
Returns
mixed
If $options was an array, an array will be returned with $id set. If a string was supplied, a string will be returned.
entitysource public
entity( )
Returns the entity reference of the current context as an array of identity parts
Returns
array
An array containing the identity elements of an entity
fieldsource public
field( )
Gets the currently-used model field of the rendering context. Strips off field suffixes such as year, month, day, hour, min, meridian when the current entity is longer than 2 elements.
Returns
string
string
modelsource public
model( )
Gets the currently-used model of the rendering context.
Returns
string
string
outputsource public
output( string $str )
Returns a string generated by a helper method
This method can be overridden in subclasses to do generalized output post-processing
Deprecated
3.0.0 This method will be removed in future versions.Parameters
- string
$str
- String to be output.
Returns
string
string
setEntitysource public
setEntity( string $entity , boolean $setScope false )
Sets this helper's model and field properties to the dot-separated value-pair in $entity.
Parameters
- string
$entity
- A field name, like "ModelName.fieldName" or "ModelName.ID.fieldName"
- boolean
$setScope
optional false - Sets the view scope to the model specified in $tagValue
urlsource public
url( string|array $url null , boolean $full false )
Finds URL for specified action.
Returns a URL pointing at the provided parameters.
Parameters
- string|array
$url
optional null - Either a relative string url like
/products/view/23
or an array of URL parameters. Using an array for URLs will allow you to leverage the reverse routing features of CakePHP. - boolean
$full
optional false - If true, the full base URL will be prepended to the result
Returns
string
Full translated URL with base path.
Link
http://book.cakephp.org/2.0/en/views/helpers.htmlvaluesource public
value( array|string $options array() , string $field null , string $key 'value' )
Gets the data for the current tag
Parameters
- array|string
$options
optional array() - If an array, should be an array of attributes that $key needs to be added to. If a string or null, will be used as the View entity.
- string
$field
optional null - Field name.
- string
$key
optional 'value' - The name of the attribute to be set, defaults to 'value'
Returns
mixed
If an array was given for $options, an array with $key set will be returned. If a string was supplied a string will be returned.
webrootsource public
webroot( string $file )
Checks if a file exists when theme is used, if no file is found default location is returned
Parameters
- string
$file
- The file to create a webroot path to.
Returns
string
Web accessible path to file.
Methods inherited from Object
_mergeVarssource protected
_mergeVars( array $properties , string $class , boolean $normalize true )
Merges this objects $property with the property in $class' definition. This classes value for the property will be merged on top of $class'
This provides some of the DRY magic CakePHP provides. If you want to shut it off, redefine this method as an empty function.
Parameters
- array
$properties
- The name of the properties to merge.
- string
$class
- The class to merge the property with.
- boolean
$normalize
optional true - Set to true to run the properties through Hash::normalize() before merging.
_setsource protected
_set( array $properties array() )
Allows setting of multiple properties of the object in a single line of code. Will only set properties that are part of a class declaration.
Parameters
- array
$properties
optional array() - An associative array containing properties and corresponding values.
_stopsource protected
_stop( integer|string $status 0 )
Stop execution of the current script. Wraps exit() making testing easier.
Parameters
- integer|string
$status
optional 0 - see http://php.net/exit for values
dispatchMethodsource public
dispatchMethod( string $method , array $params array() )
Calls a method on this object with the given parameters. Provides an OO wrapper for call_user_func_array
Parameters
- string
$method
- Name of the method to call
- array
$params
optional array() - Parameter list to use when calling $method
Returns
mixed
Returns the result of the method call
logsource public
log( string $msg , integer $type LOG_ERR , null|string|array $scope null )
Convenience method to write a message to CakeLog. See CakeLog::write() for more information on writing to logs.
Parameters
- string
$msg
- Log message
- integer
$type
optional LOG_ERR - Error type constant. Defined in app/Config/core.php.
- null|string|array
$scope
optional null - The scope(s) a log message is being created in. See CakeLog::config() for more information on logging scopes.
Returns
boolean
Success of log write
requestActionsource public
requestAction( string|array $url , array $extra array() )
Calls a controller's method from any location. Can be used to connect controllers together or tie plugins into a main application. requestAction can be used to return rendered views or fetch the return value from controller actions.
Under the hood this method uses Router::reverse() to convert the $url parameter into a string URL. You should use URL formats that are compatible with Router::reverse()
Passing POST and GET data
POST and GET data can be simulated in requestAction. Use $extra['url']
for GET data. The $extra['data']
parameter allows POST data simulation.
Parameters
- string|array
$url
- String or array-based URL. Unlike other URL arrays in CakePHP, this URL will not automatically handle passed and named arguments in the $url parameter.
- array
$extra
optional array() - if array includes the key "return" it sets the AutoRender to true. Can also be used to submit GET/POST data, and named/passed arguments.
Returns
mixed
Boolean true or false on success/failure, or contents of rendered action if 'return' is set in $extra.
toStringsource public
toString( )
Object-to-string conversion. Each class can override this method as necessary.
Returns
string
The name of this class
Constants summary
string | SECURE_SKIP Constant used internally to skip the securing process, and neither add the field to the hash or to the unlocked fields. | 'skip' |
Properties summary
Properties inherited from Helper
$_associationsource
protected string
The name of the current model association entities are in scope of.
See
Helper::setEntity()
$_entityPathsource
protected string
The dot separated list of elements the current field entity is for.
See
Helper::setEntity()
$_fieldSuffixessource
protected array
A list of strings that should be treated as suffixes, or sub inputs for a parent input. This is used for date/time inputs primarily.
array( 'year', 'month', 'day', 'hour', 'min', 'second', 'meridian' )
$_minimizedAttributessource
protected array
Minimized attributes
array( 'allowfullscreen', 'async', 'autofocus', 'autoplay', 'checked', 'compact', 'controls', 'declare', 'default', 'defaultchecked', 'defaultmuted', 'defaultselected', 'defer', 'disabled', 'enabled', 'formnovalidate', 'hidden', 'indeterminate', 'inert', 'ismap', 'itemscope', 'loop', 'multiple', 'muted', 'nohref', 'noresize', 'noshade', 'novalidate', 'nowrap', 'open', 'pauseonexit', 'readonly', 'required', 'reversed', 'scoped', 'seamless', 'selected', 'sortable', 'spellcheck', 'truespeed', 'typemustmatch', 'visible' )
$_modelScopesource
protected string
The name of the current model entities are in scope of.
See
Helper::setEntity()
$fieldsetsource
public array
Holds the fields array('field_name' => array('type' => 'string', 'length' => 100), primaryKey and validates array('field_name')
array()
Magic properties summary
$Htmlsource
public HtmlHelper
© 2005–2016 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.
http://api.cakephp.org/2.7/class-FormHelper.html