Products
- Type
- Class
- Namespace
- craft\commerce\fields
- Inherits
- craft\commerce\fields\Products » craft\fields\BaseRelationField » craft\base\Field » craft\base\SavableComponent » craft\base\ConfigurableComponent » craft\base\Component » craft\base\Model » yii\base\Model » yii\base\Component » yii\base\BaseObject
- Implements
- ArrayAccess, IteratorAggregate, craft\base\ComponentInterface, craft\base\ConfigurableComponentInterface, craft\base\EagerLoadingFieldInterface, craft\base\FieldInterface, craft\base\InlineEditableFieldInterface, craft\base\MergeableFieldInterface, craft\base\ModelInterface, craft\base\RelationalFieldInterface, craft\base\SavableComponentInterface, yii\base\Arrayable, yii\base\Configurable, yii\base\StaticInstanceInterface
- Uses traits
- craft\base\ClonefixTrait, craft\base\FieldTrait, craft\base\SavableComponentTrait, yii\base\ArrayableTrait, yii\base\StaticInstanceTrait
- Since
- 2.0
Class Product Field
Public Properties
Property | Description |
---|---|
activeValidators | yii\validators\Validator – The validators applicable to the current scenario. |
allowLimit | boolean – Whether to show the Min Relations and Max Relations settings. |
allowMultipleSources | boolean – Whether to allow multiple source selection in the settings |
allowSelfRelations | boolean – Whether elements should be allowed to relate themselves. |
attributes | array – Attribute values (name => value). |
behaviors | yii\base\Behavior – List of behaviors attached to this component. |
branchLimit | integer, null – Branch limit |
columnSuffix | string, null – The field’s content column suffix |
contentGqlMutationArgumentType | \GraphQL\Type\Definition\Type , array |
contentGqlQueryArgumentType | \GraphQL\Type\Definition\Type , array |
contentGqlType | array |
context | string, null – The field’s context |
cpEditUrl | |
dateCreated | DateTime, null – The date that the component was created |
dateDeleted | DateTime, null – The date that the field was trashed |
dateUpdated | DateTime, null – The date that the component was last updated |
describedBy | string, null – The aria-describedby attribute value that should be set on the focusable input(s). |
eagerLoadingGqlConditions | |
elementConditionRuleType | string, array, null |
elementValidationRules | array |
errors | array – Errors for all attributes or the specified attribute. |
firstErrors | array – The first errors. |
handle | string, null – The field’s handle |
id | integer, string, null – The component’s ID (could be a temporary one: "new:X") |
inputId | string |
inputSelectionCriteria | array |
inputSources | array, string, null |
instructions | string, null – The field’s instructions |
isNew | boolean – Whether the component is new (unsaved) |
iterator | ArrayIterator – An iterator for traversing the items in the list. |
labelId | string |
layoutElement | craft\fieldlayoutelements\CustomField, null – The field layout element |
localizeRelations | boolean – Whether each site should get its own unique set of relations |
maintainHierarchy | boolean – Whether to automatically relate structural ancestors. |
maxRelations | integer, null – The maximum number of relations this field can have (used if allowLimit is set to true). |
minRelations | integer, null – The maximum number of relations this field can have (used if allowLimit is set to true). |
name | string, null – The field’s name |
oldHandle | string, null – The field’s previous handle |
oldSettings | array, null – The field’s previous settings |
required | boolean, null – Whether the field is required in the field layout it was fetched from |
scenario | string – The scenario that this model is in. |
searchable | boolean – Whether the field's values should be registered as search keywords on the elements. |
selectionCondition | craft\elements\conditions\ElementConditionInterface, null |
selectionLabel | string, null – The label that should be used on the selection input |
settings | array – The component’s settings |
settingsHtml | string, null |
showCardsInGrid | boolean – Whether cards should be shown in a multi-column grid |
showSiteMenu | boolean – Whether the site menu should be shown in element selector modals. |
sortOption | |
source | string, null – The source key that this field can relate elements from (used if allowMultipleSources is set to false) |
sourceOptions | array |
sources | string, string[], null – The source keys that this field can relate elements from (used if allowMultipleSources is set to true) |
targetSiteFieldHtml | string, null |
targetSiteId | string, null – The UID of the site that this field should relate elements from |
translationKeyFormat | string, null – The field’s translation key format, if translationMethod is "custom" |
translationMethod | string – The field’s translation method |
uiLabel | |
uid | string, null – The field's UID |
validateHandleUniqueness | boolean – Whether the field handle’s uniqueness should be validated. |
validateRelatedElements | boolean – Whether related elements should be validated when the source element is saved. |
validators | ArrayObject, yii\validators\Validator – All the validators declared in the model. |
valueSql | string, null |
viewMode | string, null – The view mode |
viewModeFieldHtml | string, null |
contentGqlType
- Type
- array
- Default value
null
Protected Properties
Property | Description |
---|---|
allowLargeThumbsView | boolean – Whether to allow the “Large Thumbnails” view mode |
inputJsClass | string, null – The JS class that should be initialized for the input |
inputTemplate | string – Template to use for field rendering |
settingsTemplate | string – Template to use for settings rendering |
sortable | boolean – Whether the elements have a custom sort order |
Public Methods
Method | Description |
---|---|
__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() | |
__get() | Returns the value of a component property. |
__isset() | Checks if a property is set, i.e. defined and not null. |
__set() | Sets the value of a component property. |
__toString() | Use the translated field name as the string representation. |
__unset() | Sets a component property to be null. |
activeAttributes() | Returns the attribute names that are subject to validation in the current scenario. |
addError() | Adds a new error to the specified attribute. |
addErrors() | Adds a list of errors. |
addModelErrors() | Adds errors from another model, with a given attribute name prefix. |
afterDelete() | Performs actions after a component is deleted. |
afterElementDelete() | Performs actions after the element has been deleted. |
afterElementDeleteForSite() | Performs actions after the element has been deleted. |
afterElementPropagate() | Performs actions after the element has been fully saved and propagated to other sites. |
afterElementRestore() | Performs actions after the element has been restored. |
afterElementSave() | Performs actions after the element has been saved. |
afterMergeFrom() | |
afterMergeInto() | |
afterSave() | Performs actions after a component is saved. |
afterValidate() | This method is invoked after validation ends. |
attachBehavior() | Attaches a behavior to this component. |
attachBehaviors() | Attaches a list of behaviors to the component. |
attributeHints() | Returns the attribute hints. |
attributeLabels() | Returns the attribute labels. |
attributes() | Returns the list of attribute names. |
beforeApplyDelete() | Performs actions before a component delete is applied to the database. |
beforeDelete() | Performs actions before a component is deleted. |
beforeElementDelete() | Performs actions before an element is deleted. |
beforeElementDeleteForSite() | Performs actions before an element is deleted for a site. |
beforeElementRestore() | Performs actions before an element is restored. |
beforeElementSave() | Performs actions before an element is saved. |
beforeSave() | Performs actions before a component is saved. |
beforeValidate() | This method is invoked before validation starts. |
behaviors() | Returns a list of behaviors that this component should behave as. |
canGetProperty() | Returns a value indicating whether a property can be read. |
canMergeFrom() | |
canMergeInto() | |
canSetProperty() | Returns a value indicating whether a property can be set. |
className() | Returns the fully qualified name of this class. |
clearErrors() | Removes errors for all attributes or a single attribute. |
copyValue() | Copies the field’s value from one element to another. |
createValidators() | Creates validator objects based on the validation rules specified in rules(). |
datetimeAttributes() | Returns the names of any attributes that should hold DateTime values. |
dbType() | Returns the DB data type(s) that this field will store within the elements_sites.content column. |
defaultSelectionLabel() | Returns the default selectionLabel value. |
detachBehavior() | Detaches a behavior from the component. |
detachBehaviors() | Detaches all behaviors from the component. |
displayName() | Returns the display name of this class. |
elementType() | Returns the element class associated with this field type. |
ensureBehaviors() | Makes sure that the behaviors declared in behaviors() are attached to this component. |
existsQueryCondition() | Returns a query builder-compatible condition for an element query, limiting the results to only elements where the given relation field has a value. |
extraFields() | Returns the list of fields that can be expanded further and returned by toArray(). |
fields() | Returns the list of fields that should be returned by default by toArray() when no specific fields are specified. |
forceUpdateRelations() | Returns whether relations should be updated for the field. |
formName() | Returns the form name that this model class should use. |
generateAttributeLabel() | Generates a user friendly attribute label based on the give attribute name. |
get() | |
getActiveValidators() | Returns the validators applicable to the current scenario. |
getAttributeHint() | Returns the text hint for the specified attribute. |
getAttributeLabel() | Returns the text label for the specified attribute. |
getAttributes() | Returns attribute values. |
getBehavior() | Returns the named behavior object. |
getBehaviors() | Returns all behaviors attached to this component. |
getContentGqlMutationArgumentType() | Returns the GraphQL type to be used as an argument in mutations for this field type. |
getContentGqlQueryArgumentType() | Returns the GraphQL type to be used as an argument in queries for this field type. |
getContentGqlType() | Returns the GraphQL type to be used for this field type. |
getCpEditUrl() | |
getEagerLoadingGqlConditions() | |
getEagerLoadingMap() | Returns an array that maps source-to-target element IDs based on this custom field. |
getElementConditionRuleType() | Returns the element condition rule class that should be used for this field. |
getElementValidationRules() | Returns the validation rules for an element with this field. |
getErrorSummary() | Returns the errors for all attributes as a one-dimensional array. |
getErrors() | Returns the errors for all attributes or a single attribute. |
getFirstError() | Returns the first error of the specified attribute. |
getFirstErrors() | Returns the first error of every attribute in the model. |
getHandle() | |
getId() | |
getInlineInputHtml() | |
getInputHtml() | |
getInputId() | Returns the input’s ID, which the <label> ’s for attribute should reference. |
getInputSelectionCriteria() | Returns any additional criteria parameters limiting which elements the field should be able to select. |
getInputSources() | Returns an array of the source keys the field should be able to select elements from. |
getIsNew() | Returns whether the component is new (unsaved). |
getIsTranslatable() | Returns whether the field should be shown as translatable in the UI. |
getIterator() | Returns an iterator for traversing the attributes in the model. |
getLabelId() | Returns the input’s label ID. |
getOrientation() | Returns the orientation the field should use (ltr or rtl ). |
getPreviewHtml() | |
getRelationTargetIds() | Returns the related element IDs for this field. |
getScenario() | Returns the scenario that this model is used in. |
getSearchKeywords() | Returns the search keywords that should be associated with this field. |
getSelectionCondition() | Returns the element condition that should be used to determine which elements are selectable by the field. |
getSettings() | Returns an array of the component’s settings. |
getSettingsHtml() | Returns the component’s settings HTML. |
getSortOption() | |
getSourceOptions() | Normalizes the available sources into select input options. |
getStaticHtml() | Returns a static (non-editable) version of the field’s input HTML. |
getStatus() | Returns the status of the field for a given element. |
getTargetSiteFieldHtml() | Returns the HTML for the Target Site setting. |
getTranslationDescription() | Returns the description of this field’s translation support. |
getTranslationKey() | Returns the field’s translation key, based on a given element. |
getUiLabel() | |
getValidators() | Returns all the validators declared in rules(). |
getValueSql() | Returns a SQL expression which extracts the field’s value from the elements_sites.content column. |
getViewModeFieldHtml() | Returns the HTML for the View Mode setting. |
hasErrors() | Returns a value indicating whether there is any validation error. |
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 for this component. |
icon() | Returns the field type’s SVG icon. |
includeInGqlSchema() | Returns whether the field should be included in the given GraphQL schema. |
init() | Initializes the object. |
instance() | Returns static class instance, which can be used to obtain meta information. |
isAttributeActive() | Returns a value indicating whether the attribute is active in the current scenario. |
isAttributeRequired() | Returns a value indicating whether the attribute is required. |
isAttributeSafe() | Returns a value indicating whether the attribute is safe for massive assignments. |
isMultiInstance() | Returns whether the field can be included multiple times within a field layout. |
isRequirable() | Returns whether the field can be marked as required. |
isSelectable() | Returns whether the component should be selectable in component Type selects. |
isValueEmpty() | Returns whether the given value should be considered “empty” to a validator. |
load() | Populates the model with input data. |
loadMultiple() | Populates a set of models with the data from end user. |
localizeRelations() | Returns whether relations stored for the field should include the source element’s site ID. |
modifyElementIndexQuery() | Modifies an element index query. |
normalizeValue() | Normalizes the field’s value for use. |
normalizeValueFromRequest() | Normalizes a posted field value for use. |
off() | Detaches an existing event handler from this component. |
offsetExists() | Returns whether there is an element at the specified offset. |
offsetGet() | Returns the element at the specified offset. |
offsetSet() | Sets the element at the specified offset. |
offsetUnset() | Sets the element value at the specified offset to null. |
on() | Attaches an event handler to an event. |
onUnsafeAttribute() | This method is invoked when an unsafe attribute is being massively assigned. |
phpType() | Returns the PHPDoc type this field’s values will have. |
queryCondition() | Returns a query builder-compatible condition for the given field instances, for a user-provided param value. |
rules() | Returns the validation rules for attributes. |
safeAttributes() | Returns the attribute names that are safe to be massively assigned in the current scenario. |
scenarios() | Returns a list of scenarios and the corresponding active attributes. |
serializeValue() | Prepares the field’s value to be stored somewhere, like the content table. |
setAttributes() | Sets the attribute values in a massive way. |
setIsFresh() | Sets whether the field is fresh. |
setScenario() | Sets the scenario for the model. |
setSelectionCondition() | Sets the element condition that should be used to determine which elements are selectable by the field. |
settingsAttributes() | Returns the list of settings attribute names. |
supportedTranslationMethods() | Returns which translation methods the field supports. |
toArray() | Converts the model into an array. |
trigger() | Triggers an event. |
useFieldset() | Returns whether the field should use a <fieldset> + <legend> instead of a <div> + <label> . |
validate() | Performs the data validation. |
validateMultiple() | Validates multiple models. |
validateRelatedElements() | Validates the related elements. |
validateRelationCount() | Validates that the number of related elements are within the min/max relation bounds. |
validateSources() | Ensure only one structured source is selected when maintainHierarchy is true. |
__construct()
Arguments
$config
defaultSelectionLabel()
Returns the default selectionLabel value.
Returns
string – The default selection label
displayName()
Returns the display name of this class.
Returns
string – The display name of this class.
elementType()
Returns the element class associated with this field type.
Returns
string – The Element class name
getContentGqlType()
- Since
- 3.1.4
Returns the GraphQL type to be used for this field type.
Returns
\GraphQL\Type\Definition\Type
, array
getInputHtml()
Arguments
$value
$element
Protected Methods
Method | Description |
---|---|
availableSources() | Returns the sources that should be available to choose from within the field's settings |
createSelectionCondition() | Creates an element condition that should be used to determine which elements are selectable by the field. |
defineBehaviors() | Returns the behaviors to attach to this class. |
defineRules() | Returns the validation rules for attributes. |
extractFieldsFor() | Extract nested fields from a fields collection for a given root field Nested fields are separated with dots (.). e.g: "item.id" The previous example would extract "id". |
extractRootFields() | Extracts the root field names from nested fields. |
inputHtml() | Returns the field’s input HTML. |
inputTemplateVariables() | Returns an array of variables that should be passed to the input template. |
isFresh() | Returns whether this is the first time the element’s content has been edited. |
previewHtml() | Returns the HTML that should be shown for this field in table and card views. |
requestParamName() | Returns the field’s param name on the request. |
resolveFields() | Determines which fields can be returned by toArray(). |
searchKeywords() | Returns the search keywords that should be associated with this field. |
settingsTemplateVariables() | Returns an array of variables that should be passed to the settings template. |
supportedViewModes() | Returns the field’s supported view modes. |
targetSiteId() | Returns the site ID that target elements should have. |
valueSql() | Returns a coalescing value SQL expression for the given field instances. |
viewMode() | Returns the field’s current view mode. |
Constants
Constant | Description |
---|---|
SCENARIO_DEFAULT | The name of the default scenario. |
TRANSLATION_METHOD_CUSTOM | |
TRANSLATION_METHOD_LANGUAGE | |
TRANSLATION_METHOD_NONE | |
TRANSLATION_METHOD_SITE | |
TRANSLATION_METHOD_SITE_GROUP |