Fields

Type
Class
Namespace
craft\services
Inherits
craft\services\Fields » yii\base\Component » yii\base\BaseObject
Implements
yii\base\Configurable
Since
3.0

Fields service.

An instance of the Fields service is globally accessible in Craft via Craft::$app->fields.

View source

Public Properties

PropertyDescription
allFieldTypesstring[] – The available field type classes
allFieldscraft\base\FieldInterface[] – The fields
allGroupscraft\models\FieldGroup[] – The field groups
behaviorsyii\base\Behavior – List of behaviors attached to this component
fieldTypesWithContentstring[] – The field type classes
fieldsWithContentcraft\base\FieldInterface[] – The fields
ignoreProjectConfigChangesboolean – Whether to ignore changes to the project config.
oldFieldColumnPrefixstring

allFieldTypes

Type
string[]
Access
Read-only

The available field type classes

View source

allFields

Type
craft\base\FieldInterface[]
Access
Read-only

The fields

View source

allGroups

Type
craft\models\FieldGroup[]
Access
Read-only

The field groups

View source

fieldTypesWithContent

Type
string[]
Access
Read-only

The field type classes

View source

fieldsWithContent

Type
craft\base\FieldInterface[]
Access
Read-only

The fields

View source

ignoreProjectConfigChanges

DEPRECATED

Deprecated in 3.1.2. Use craft\services\ProjectConfig::$muteEvents instead.

Type
boolean

Whether to ignore changes to the project config.

View source

oldFieldColumnPrefix

Type
string

View source

Public Methods

MethodDescription
__call()Calls the named method which is not a class method.
__clone()This method is called after the object is created by cloning an existing one.
__construct()Constructor.
__get()Returns the value of an object property.
__isset()Checks if a property is set, i.e. defined and not null.
__set()Sets value of an object property.
__unset()Sets an object property to null.
applyFieldDelete()Applies a field delete to the database.
applyFieldSave()Applies a field save to the database.
assembleLayout()Assembles a field layout.
assembleLayoutFromPost()Assembles a field layout from post data.
attachBehavior()Attaches a behavior to this component.
attachBehaviors()Attaches a list of behaviors to the component.
behaviors()Returns a list of behaviors that this component should behave as.
canGetProperty()Returns a value indicating whether a property can be read.
canSetProperty()Returns a value indicating whether a property can be set.
className()Returns the fully qualified name of this class.
createField()Creates a field with a given config.
createFieldConfig()Creates a field config array for the given field.
deleteField()Deletes a field.
deleteFieldById()Deletes a field by its ID.
deleteGroup()Deletes a field group.
deleteGroupById()Deletes a field group by its ID.
deleteLayout()Deletes a field layout.
deleteLayoutById()Deletes a field layout(s) by its ID.
deleteLayoutsByType()Deletes field layouts associated with a given element type.
detachBehavior()Detaches a behavior from the component.
detachBehaviors()Detaches all behaviors from the component.
doesFieldWithHandleExist()Returns whether a field exists with a given handle and context.
ensureBehaviors()Makes sure that the behaviors declared in behaviors() are attached to this component.
getAllFieldTypes()Returns all available field type classes.
getAllFields()Returns all fields within a field context(s).
getAllGroups()Returns all field groups.
getBehavior()Returns the named behavior object.
getBehaviors()Returns all behaviors attached to this component.
getCompatibleFieldTypes()Returns all field types whose column types are considered compatible with a given field.
getFieldByHandle()Returns a field by its handle.
getFieldById()Returns a field by its ID.
getFieldByUid()Returns a field by its UID.
getFieldIdsByLayoutId()Returns the field IDs for a given layout ID.
getFieldIdsByLayoutIds()Returns the field IDs grouped by layout IDs, for a given set of layout IDs.
getFieldTypesWithContent()Returns all field types that have a column in the content table.
getFieldsByElementType()Returns all of the fields used by a given element type.
getFieldsByGroupId()Returns all the fields in a given group.
getFieldsByLayoutId()Returns the fields in a field layout, identified by its ID.
getFieldsWithContent()Returns all fields that have a column in the content table.
getGroupById()Returns a field group by its ID.
getLayoutById()Returns a field layout by its ID.
getLayoutByType()Returns a field layout by its associated element type.
getLayoutTabsById()Returns a layout's tabs by its ID.
handleChangedField()Handle field changes.
handleChangedGroup()Handle field group change
handleDeletedField()Handle a field getting deleted.
handleDeletedGroup()Handle field group getting deleted.
hasEventHandlers()Returns a value indicating whether there is any handler attached to the named event.
hasMethod()Returns a value indicating whether a method is defined.
hasProperty()Returns a value indicating whether a property is defined.
init()Initializes the object.
off()Detaches an existing event handler from this component.
on()Attaches an event handler to an event.
prepFieldForSave()Preps a field to be saved.
refreshFields()Refreshes the internal field cache.
restoreLayoutById()Restores a field layout by its ID.
saveField()Saves a field.
saveGroup()Saves a field group.
saveLayout()Saves a field layout.
trigger()Triggers an event.
updateFieldVersion()Sets a new field version, so the ContentBehavior and ElementQueryBehavior classes will get regenerated on the next request.

applyFieldDelete()

Applies a field delete to the database.

View source

Arguments

  • $fieldUid

Throws

applyFieldSave()

Applies a field save to the database.

View source

Arguments

assembleLayout()

Assembles a field layout.

View source

Arguments

  • $postedFieldLayout (array) – The post data for the field layout
  • $requiredFields (array) – The field IDs that should be marked as required in the field layout

Returns

craft\models\FieldLayout – The field layout

assembleLayoutFromPost()

Assembles a field layout from post data.

View source

Arguments

  • $namespace (string, null) – The namespace that the form data was posted in, if any

Returns

craft\models\FieldLayout – The field layout

createField()

Creates a field with a given config.

View source

Arguments

  • $config (mixed) – The field’s class name, or its config, with a type value and optionally a settings value

Returns

craft\base\FieldInterface – The field

createFieldConfig()

Creates a field config array for the given field.

View source

Arguments

Returns

array

deleteField()

Deletes a field.

View source

Arguments

Returns

boolean – Whether the field was deleted successfully

Throws

deleteFieldById()

Deletes a field by its ID.

View source

Arguments

  • $fieldId (integer) – The field’s ID

Returns

boolean – Whether the field was deleted successfully

deleteGroup()

Deletes a field group.

View source

Arguments

Returns

boolean – Whether the field group was deleted successfully

deleteGroupById()

Deletes a field group by its ID.

View source

Arguments

  • $groupId (integer) – The field group’s ID

Returns

boolean – Whether the field group was deleted successfully

deleteLayout()

Deletes a field layout.

View source

Arguments

Returns

boolean – Whether the field layout was deleted successfully

deleteLayoutById()

Deletes a field layout(s) by its ID.

View source

Arguments

Returns

boolean – Whether the field layout was deleted successfully

deleteLayoutsByType()

Deletes field layouts associated with a given element type.

View source

Arguments

  • $type (string) – The element type

Returns

boolean – Whether the field layouts were deleted successfully

doesFieldWithHandleExist()

Returns whether a field exists with a given handle and context.

View source

Arguments

  • $handle (string) – The field handle
  • $context (string, null) – The field context (defauts to ContentService::$fieldContext)

Returns

boolean – Whether a field with that handle exists

getAllFieldTypes()

Returns all available field type classes.

View source

Returns

string[] – The available field type classes

getAllFields()

Returns all fields within a field context(s).

View source

Arguments

  • $context (string, string[], false, null) – The field context(s) to fetch fields from. Defaults to {@link ContentService::$fieldContext}. Set to false to get all fields regardless of context.

Returns

craft\base\FieldInterface[] – The fields

getAllGroups()

Returns all field groups.

View source

Returns

craft\models\FieldGroup[] – The field groups

getCompatibleFieldTypes()

Returns all field types whose column types are considered compatible with a given field.

View source

Arguments

Returns

string[] – The compatible field type classes

getFieldByHandle()

Returns a field by its handle.

View source

Arguments

  • $handle (string) – The field’s handle

Returns

craft\base\FieldInterface, null – The field, or null if it doesn’t exist

Example

getFieldById()

Returns a field by its ID.

View source

Arguments

  • $fieldId (integer) – The field’s ID

Returns

craft\base\FieldInterface, null – The field, or null if it doesn’t exist

getFieldByUid()

Returns a field by its UID.

View source

Arguments

  • $fieldUid (string) – The field’s UID

Returns

craft\base\FieldInterface, null – The field, or null if it doesn’t exist

getFieldIdsByLayoutId()

Returns the field IDs for a given layout ID.

View source

Arguments

  • $layoutId (integer) – The field layout ID

Returns

integer[]

getFieldIdsByLayoutIds()

Returns the field IDs grouped by layout IDs, for a given set of layout IDs.

View source

Arguments

  • $layoutIds (integer[]) – The field layout IDs

Returns

array

getFieldTypesWithContent()

Returns all field types that have a column in the content table.

View source

Returns

string[] – The field type classes

getFieldsByElementType()

Returns all of the fields used by a given element type.

View source

Arguments

Returns

craft\base\FieldInterface[] – The fields

getFieldsByGroupId()

Returns all the fields in a given group.

View source

Arguments

  • $groupId (integer) – The field group’s ID

Returns

craft\base\FieldInterface[] – The fields

getFieldsByLayoutId()

Returns the fields in a field layout, identified by its ID.

View source

Arguments

  • $layoutId (integer) – The field layout’s ID

Returns

craft\base\FieldInterface[] – The fields

getFieldsWithContent()

Returns all fields that have a column in the content table.

View source

Returns

craft\base\FieldInterface[] – The fields

getGroupById()

Returns a field group by its ID.

View source

Arguments

  • $groupId (integer) – The field group’s ID

Returns

craft\models\FieldGroup, null – The field group, or null if it doesn’t exist

getLayoutById()

Returns a field layout by its ID.

View source

Arguments

  • $layoutId (integer) – The field layout’s ID

Returns

craft\models\FieldLayout, null – The field layout, or null if it doesn’t exist

getLayoutByType()

Returns a field layout by its associated element type.

View source

Arguments

  • $type (string) – The associated element type

Returns

craft\models\FieldLayout – The field layout

getLayoutTabsById()

Returns a layout's tabs by its ID.

View source

Arguments

  • $layoutId (integer) – The field layout’s ID

Returns

craft\models\FieldLayoutTab[] – The field layout’s tabs

handleChangedField()

Handle field changes.

View source

Arguments

Throws

handleChangedGroup()

Handle field group change

View source

Arguments

handleDeletedField()

Handle a field getting deleted.

View source

Arguments

handleDeletedGroup()

Handle field group getting deleted.

View source

Arguments

prepFieldForSave()

Preps a field to be saved.

View source

Arguments

refreshFields()

Refreshes the internal field cache. This should be called whenever a field is updated or deleted directly in the database, rather than going through this service.

View source

restoreLayoutById()

Restores a field layout by its ID.

View source

Arguments

  • $id (integer) – The field layout’s ID

Returns

boolean – Whether the layout was restored successfully

saveField()

Saves a field.

View source

Arguments

Returns

boolean – Whether the field was saved successfully

Throws

saveGroup()

Saves a field group.

View source

Arguments

Returns

boolean – Whether the field group was saved successfully

saveLayout()

Saves a field layout.

View source

Arguments

Returns

boolean – Whether the field layout was saved successfully

Throws

updateFieldVersion()

Sets a new field version, so the ContentBehavior and ElementQueryBehavior classes will get regenerated on the next request.

View source

Constants

ConstantDescription
CONFIG_FIELDGROUP_KEY
CONFIG_FIELDS_KEY

Events

EVENT_AFTER_DELETE_FIELD

Type
craft\events\FieldEvent

The event that is triggered after a field is deleted.

EVENT_AFTER_DELETE_FIELD_GROUP

Type
craft\events\FieldGroupEvent

The event that is triggered after a field group is deleted.

EVENT_AFTER_DELETE_FIELD_LAYOUT

Type
craft\events\FieldLayoutEvent

The event that is triggered after a field layout is deleted.

EVENT_AFTER_SAVE_FIELD

Type
craft\events\FieldEvent

The event that is triggered after a field is saved.

EVENT_AFTER_SAVE_FIELD_GROUP

Type
craft\events\FieldGroupEvent

The event that is triggered after a field group is saved.

EVENT_AFTER_SAVE_FIELD_LAYOUT

Type
craft\events\FieldLayoutEvent

The event that is triggered after a field layout is saved.

EVENT_BEFORE_APPLY_FIELD_DELETE

Type
craft\events\FieldEvent

The event that is triggered before a field delete is applied to the database.

EVENT_BEFORE_APPLY_GROUP_DELETE

Type
craft\events\FieldGroupEvent

The event that is triggered before a field group delete is applied to the database.

EVENT_BEFORE_DELETE_FIELD

Type
craft\events\FieldEvent

The event that is triggered before a field is deleted.

EVENT_BEFORE_DELETE_FIELD_GROUP

Type
craft\events\FieldGroupEvent

The event that is triggered before a field group is deleted.

EVENT_BEFORE_DELETE_FIELD_LAYOUT

Type
craft\events\FieldLayoutEvent

The event that is triggered before a field layout is deleted.

EVENT_BEFORE_SAVE_FIELD

Type
craft\events\FieldEvent

The event that is triggered before a field is saved.

EVENT_BEFORE_SAVE_FIELD_GROUP

Type
craft\events\FieldGroupEvent

The event that is triggered before a field group is saved.

EVENT_BEFORE_SAVE_FIELD_LAYOUT

Type
craft\events\FieldLayoutEvent

The event that is triggered before a field layout is saved.

EVENT_REGISTER_FIELD_TYPES

Type
craft\events\RegisterComponentTypesEvent

The event that is triggered when registering field types.

Field types must implement craft\base\FieldInterface. craft\base\Field provides a base implementation.

See Field Types for documentation on creating field types.

Example