Field represents a custom field that is used on a Page.

// Get an instance of Field
$field = $fields->get('field_name');

Field objects are managed by the $fields API variable.


Click any linked item for full usage details and examples. Hookable methods are indicated with the icon. In addition to those shown below, the Field class also inherits all the methods and properties of: WireData and Wire.

Show $var?             Show args?        

Retrieval

NameReturnSummary 
$field->get(string $key)
mixedGet a Field setting or dynamic data property 
$field->getConfigInputfields()
InputfieldWrapperGet any Inputfields needed to configure the field in the admin.
$field->getContext($for)
Field boolGet this field in context of a Page/Template 
$field->getDescription()
stringReturn field description for current language, or another specified language. 
$field->getFieldgroups()
FieldgroupsArrayReturn the list of Fieldgroups using this field. 
$field->getFieldtype()
Fieldtype nullReturn the Fieldtype module representing this field’s type. 
$field->getIcon()
mixed stringReturn the icon used by this field, or blank if none. 
$field->getInputfield(Page $page)
Inputfield nullGet the Inputfield module used to collect input for this field.
$field->getLabel()
stringGet field label for current language, or another specified language. 
$field->getNotes()
stringReturn field notes for current language, or another specified language. 
$field->getTable()
stringGet the database table used by this field. 
$field->getTemplates()
TemplatesArrayReturn the list of of Templates using this field. 
$field->hasContext($for)
Field boolDoes this field have context settings for given Page/Template? 
$field->numFieldgroups()
intReturn the number of Fieldgroups this field is used in. 

Access

NameReturnSummary 
$field->editRoles array Role IDs with edit access, applicable only if access control is enabled.  
$field->editable()
boolIs this field editable?
$field->useRoles bool Whether or not access control is enabled  
$field->viewRoles array Role IDs with view access, applicable only if access control is enabled.  
$field->viewable()
boolIs this field viewable?

Advanced

NameReturnSummary 
$field->setTable()
(nothing)Set an override table name, or omit (or null) to restore default table name 

Flags

NameReturnSummary 
$field->addFlag(int $flag)
$thisAdd the given bitmask flag 
Field::flagAccess const32Field is access controlled 
Field::flagAccessAPI const64If field is access controlled, this flag says that values are still front-end API accessible Without this flag, non-viewable values are made blank when output formatting is ON. 
Field::flagAccessEditor const128If field is access controlled and user has no edit access, they can still view in the editor (if they have view permission) Without this flag, non-editable values are simply not shown in the editor at all. 
Field::flagAutojoin const1Field should be automatically joined to the page at page load time 
Field::flagFieldgroupContext const2048Field has been placed in a runtime state where it is contextual to a specific fieldgroup and is no longer saveable 
Field::flagGlobal const4Field used by all fieldgroups - all fieldgroups required to contain this field 
Field::flagPermanent const16Field is permanent in any fieldgroups/templates where it exists - it may not be removed from them 
Field::flagSystem const8Field is a system field and may not be deleted, have it's name changed, or be converted to non-system 
Field::flagSystemOverride const32768Set this flag to override system/permanent flags if necessary - once set, system/permanent flags can be removed, but not in the same set(). 
Field::flagUnique const256Field requires that the same value is not repeated more than once in its table 'data' column (when supported by Fieldtype) When this flag is set and there is a non-empty $flagUnique property on the field, then it indicates a unique index is currently present. When only this flag is present (no property), it indicates a request to remove the index and flag. When only the property is present (no flag), it indicates a pending request to add unique index and flag. @since 3.0.150 
$field->hasFlag(int $flag)
boolDoes this field have the given bitmask flag? 
$field->removeFlag(int $flag)
$thisRemove the given bitmask flag 

Properties

NameReturnSummary 
$field->allowContexts array Names of settings that are custom configured to be allowed for context.  
$field->collapsed int null The Inputfield 'collapsed' value (see Inputfield collapsed constants).  
$field->columnWidth int null The Inputfield column width (percent) 10-100.  
$field->description string Longer description text for the field  
$field->flags int Bitmask of flags used by this field  
$field->flagsStr string Names of flags used by this field (readonly)  
$field->icon string Icon name used by the field, if applicable  
$field->id int Numeric ID of field in the database  
$field->label string Text string representing the label of the field  
$field->name string Name of field  
$field->notes string Additional notes text about the field  
$field->prevFieldtype Fieldtype null Previous Fieldtype, if type was changed  
$field->prevName string Previously used name (if field was renamed), 3.0.164+  
$field->prevTable string Previously database table (if field was renamed)  
$field->required int bool null Whether or not this field is required during input  
$field->requiredIf string null A selector-style string that defines the conditions under which input is required  
$field->showIf string null A selector-style string that defines the conditions under which the Inputfield is shown  
$field->table string Database table used by the field  
$field->tagList array Same as $tags property, but as an array.  
$field->tags string Tags that represent this field, if applicable (space separated string).  
$field->textFormat int null The Inputfield 'textFormat' value (see Inputfield textFormat constants).  
$field->type Fieldtype null Fieldtype module that represents the type of this field  

Additional methods and properties

In addition to the methods and properties above, Field also inherits the methods and properties of these classes:

API reference based on ProcessWire core version 3.0.168

Twitter updates

  • There’s a new modules directory on the ProcessWire site now up and running. In this post we’ll cover a few details about what’s changed and what’s new—More
    20 November 2020
  • ProcessWire 3.0.168 core updates — More
    26 October 2020
  • This week a 2nd new module for processing Stripe payments has been added to FormBuilder. Unlike our other Stripe Inputfield, this new one supports 3D Secure (SCA) payments. We’ll take a closer look at it in this post, plus a live demo— More
    16 October 2020

Latest news

  • ProcessWire Weekly #341
    In the 341st issue of ProcessWire Weekly we're going to check out the latest processwire.com blog post, introduce upcoming commercial module called NiftyPasswordsPlus, and check out a brand new site of the week. Read on!
    Weekly.pw / 21 November 2020
  • New ProcessWire modules directory
    There’s a new modules directory on the ProcessWire site now up and running. In this post we’ll cover a few details about what’s changed and what’s new.
    Blog / 20 November 2020
  • Subscribe to weekly ProcessWire news

“Indeed, if ProcessWire can be considered as a CMS in its own right, it also offers all the advantages of a CMF (Content Management Framework). Unlike other solutions, the programmer is not forced to follow the proposed model and can integrate his/her ways of doing things.” —Guy Verville, Spiria Digital Inc.