You are here

public static function CourseObjectFulfillment::baseFieldDefinitions in Course 3.x

Same name and namespace in other branches
  1. 8.3 src/Entity/CourseObjectFulfillment.php \Drupal\course\Entity\CourseObjectFulfillment::baseFieldDefinitions()
  2. 8.2 src/Entity/CourseObjectFulfillment.php \Drupal\course\Entity\CourseObjectFulfillment::baseFieldDefinitions()

Provides base field definitions for an entity type.

Implementations typically use the class \Drupal\Core\Field\BaseFieldDefinition for creating the field definitions; for example a 'name' field could be defined as the following:

$fields['name'] = BaseFieldDefinition::create('string')
  ->setLabel(t('Name'));

By definition, base fields are fields that exist for every bundle. To provide definitions for fields that should only exist on some bundles, use \Drupal\Core\Entity\FieldableEntityInterface::bundleFieldDefinitions().

The definitions returned by this function can be overridden for all bundles by hook_entity_base_field_info_alter() or overridden on a per-bundle basis via 'base_field_override' configuration entities.

Parameters

\Drupal\Core\Entity\EntityTypeInterface $entity_type: The entity type definition. Useful when a single class is used for multiple, possibly dynamic entity types.

Return value

\Drupal\Core\Field\FieldDefinitionInterface[] An array of base field definitions for the entity type, keyed by field name.

Overrides ContentEntityBase::baseFieldDefinitions

See also

\Drupal\Core\Entity\EntityFieldManagerInterface::getFieldDefinitions()

\Drupal\Core\Entity\FieldableEntityInterface::bundleFieldDefinitions()

File

src/Entity/CourseObjectFulfillment.php, line 58

Class

CourseObjectFulfillment
Parent class for course object fulfillment. Unlike Course objects, this is not abstract and can be used when the fulfillment requirements are simple.

Namespace

Drupal\course\Entity

Code

public static function baseFieldDefinitions(EntityTypeInterface $entity_type) {
  $fields = parent::baseFieldDefinitions($entity_type);
  $fields += static::revisionLogBaseFieldDefinitions($entity_type);
  $fields['coid'] = BaseFieldDefinition::create('entity_reference')
    ->setSetting('target_type', 'course_object')
    ->setLabel(t('Course object'));
  $fields['uid'] = BaseFieldDefinition::create('entity_reference')
    ->setSetting('target_type', 'user')
    ->setLabel(t('User'));
  $fields['complete'] = BaseFieldDefinition::create('boolean')
    ->setRevisionable(TRUE)
    ->setLabel(t('Complete'));
  $fields['grade_result'] = BaseFieldDefinition::create('integer')
    ->setRevisionable(TRUE)
    ->setLabel(t('Grade result'));
  $fields['date_started'] = BaseFieldDefinition::create('created')
    ->setRevisionable(TRUE)
    ->setLabel(t('Date started'));
  $fields['date_completed'] = BaseFieldDefinition::create('timestamp')
    ->setRevisionable(TRUE)
    ->setLabel(t('Date completed'));
  $fields['info'] = BaseFieldDefinition::create('map')
    ->setLabel(t('Info'))
    ->setDescription('Extra fulfillment data.');
  $fields['instance'] = BaseFieldDefinition::create('string')
    ->setRevisionable(TRUE)
    ->setLabel(t('Instance ID'))
    ->setDescription('An ID used to identify a remote activity fulfillment.');
  $fields['created'] = BaseFieldDefinition::create('created')
    ->setRevisionable(TRUE)
    ->setLabel('Created');
  $fields['changed'] = BaseFieldDefinition::create('changed')
    ->setRevisionable(TRUE)
    ->setLabel('Changed');
  return $fields;
}