Defines the 'entityreference_field' entity field item.
Required settings (below the definition's 'settings' key) are:
Expanded class hierarchy of EntityReferenceItem
class EntityReferenceItem extends FieldItemBase {
/**
* Field definitions of the contained properties.
*
* @see self::getPropertyDefinitions()
*
* @var array
*/
static $propertyDefinitions;
/**
* Implements ComplexDataInterface::getPropertyDefinitions().
*/
public function getPropertyDefinitions() {
// Definitions vary by entity type, so key them by entity type.
$entity_type = $this->definition['settings']['entity type'];
if (!isset(self::$propertyDefinitions[$entity_type])) {
self::$propertyDefinitions[$entity_type]['value'] = array(
// @todo: Lookup the entity type's ID data type and use it here.
'type' => 'integer',
'label' => t('Entity ID'),
);
self::$propertyDefinitions[$entity_type]['entity'] = array(
'type' => 'entity',
'constraints' => array(
'entity type' => $entity_type,
),
'label' => t('Entity'),
'description' => t('The referenced entity'),
// The entity object is computed out of the entity id.
'computed' => TRUE,
'read-only' => FALSE,
'settings' => array(
'id source' => 'value',
),
);
}
return self::$propertyDefinitions[$entity_type];
}
/**
* Overrides FieldItemBase::setValue().
*/
public function setValue($values) {
// Treat the values as property value of the entity field, if no array
// is given.
if (!is_array($values)) {
$values = array(
'entity' => $values,
);
}
// Entity is computed out of the ID, so we only need to update the ID. Only
// set the entity field if no ID is given.
if (isset($values['value'])) {
$this->properties['value']
->setValue($values['value']);
}
else {
$this->properties['entity']
->setValue(isset($values['entity']) ? $values['entity'] : NULL);
}
unset($values['entity'], $values['value']);
if ($values) {
throw new InvalidArgumentException('Property ' . key($values) . ' is unknown.');
}
}
}
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
EntityReferenceItem:: |
static | property | Field definitions of the contained properties. | |
EntityReferenceItem:: |
public | function |
Implements ComplexDataInterface::getPropertyDefinitions(). Overrides ComplexDataInterface:: |
|
EntityReferenceItem:: |
public | function |
Overrides FieldItemBase::setValue(). Overrides FieldItemBase:: |
|
FieldItemBase:: |
protected | property | The item delta or name. | |
FieldItemBase:: |
protected | property | The parent entity field. | |
FieldItemBase:: |
protected | property | The array of properties. | |
FieldItemBase:: |
public | function |
Implements ComplexDataInterface::get(). Overrides ComplexDataInterface:: |
|
FieldItemBase:: |
public | function | Implements IteratorAggregate::getIterator(). | |
FieldItemBase:: |
public | function |
Implements ContextAwareInterface::getName(). Overrides ContextAwareInterface:: |
|
FieldItemBase:: |
public | function |
Implements ContextAwareInterface::getParent(). Overrides ContextAwareInterface:: |
|
FieldItemBase:: |
public | function |
Implements ComplexDataInterface::getProperties(). Overrides ComplexDataInterface:: |
|
FieldItemBase:: |
public | function |
Implements ComplexDataInterface::getPropertyDefinition(). Overrides ComplexDataInterface:: |
|
FieldItemBase:: |
public | function |
Implements ComplexDataInterface::getPropertyValues(). Overrides ComplexDataInterface:: |
|
FieldItemBase:: |
public | function |
Implements TypedDataInterface::getString(). Overrides TypedData:: |
|
FieldItemBase:: |
public | function |
Implements TypedDataInterface::getValue(). Overrides TypedData:: |
|
FieldItemBase:: |
public | function |
Implements ComplexDataInterface::isEmpty(). Overrides ComplexDataInterface:: |
|
FieldItemBase:: |
public | function |
Implements ComplexDataInterface::set(). Overrides ComplexDataInterface:: |
|
FieldItemBase:: |
public | function |
Implements ContextAwareInterface::setName(). Overrides ContextAwareInterface:: |
|
FieldItemBase:: |
public | function |
Implements ContextAwareInterface::setParent(). Overrides ContextAwareInterface:: |
|
FieldItemBase:: |
public | function |
Implements ComplexDataInterface::setPropertyValues(). Overrides ComplexDataInterface:: |
|
FieldItemBase:: |
public | function |
Implements TypedDataInterface::validate(). Overrides TypedDataInterface:: |
|
FieldItemBase:: |
public | function | Implements a deep clone. | |
FieldItemBase:: |
public | function |
Implements TypedDataInterface::__construct(). Overrides TypedData:: |
|
FieldItemBase:: |
public | function |
Implements FieldItemInterface::__get(). Overrides FieldItemInterface:: |
|
FieldItemBase:: |
public | function |
Implements FieldItemInterface::__isset(). Overrides FieldItemInterface:: |
|
FieldItemBase:: |
public | function |
Implements FieldItemInterface::__set(). Overrides FieldItemInterface:: |
|
FieldItemBase:: |
public | function |
Implements FieldItemInterface::__unset(). Overrides FieldItemInterface:: |
|
TypedData:: |
protected | property | The data definition. | |
TypedData:: |
public | function |
Implements TypedDataInterface::getDefinition(). Overrides TypedDataInterface:: |
|
TypedData:: |
public | function |
Implements TypedDataInterface::getType(). Overrides TypedDataInterface:: |