subentity-1.x-dev/templates/generator/subentity.php.twig
templates/generator/subentity.php.twig
<?php
namespace Drupal\{{ machine_name }}\Entity;
use Drupal\Core\Entity\EntityTypeInterface;
use Drupal\Core\Field\BaseFieldDefinition;
use Drupal\subentity\Entity\SubEntityBase;
/**
* Defines the {{ label }} subentity.
*
* @ContentEntityType(
* id = "{{ entity_name }}",
* label = @Translation("{{ label }}"),
* handlers = {
* "view_builder" = "Drupal\Core\Entity\EntityViewBuilder",
* "list_builder" = "Drupal\subentity\Entity\Controller\ReferencedEntityListBuilder",
* "views_data" = "Drupal\views\EntityViewsData",
*
* "form" = {
* "default" = "Drupal\subentity\Form\ReferencedEntityForm",
* "add" = "Drupal\subentity\Form\ReferencedEntityForm",
* "edit" = "Drupal\subentity\Form\ReferencedEntityForm",
* "delete" = "Drupal\Core\Entity\ContentEntityDeleteForm",
* "settings" = "Drupal\subentity\Form\EntitySettingsForm",
* },
* "access" = "Drupal\subentity\ReferencedEntityAccessControlHandler",
* "route_provider" = {
* "html" = "Drupal\subentity\EntityHtmlRouteProvider",
* },
* "parent" = "Drupal\subentity\Entity\EntityParentHandler",
* },
* base_table = "{{ entity_name }}",
* data_table = "{{ entity_name }}_field_data",
* revision_table = "{{ entity_name }}_revision",
* revision_data_table = "{{ entity_name }}_field_revision",
* translatable = TRUE,
* admin_permission = "administer subentities",
* entity_keys = {
* "id" = "id",
* "revision" = "revision_id",
* "label" = "title",
* "uuid" = "uuid",
* "langcode" = "langcode",
{% if bundle %}
* "bundle" = "bundle",
{% endif %}
* },
* links = {
* "canonical" = "/admin/content/{{ entity_name }}/{{ '{'~entity_name~'}' }}",
* "add-form" = "/admin/content/{{ entity_name }}/add",
* "edit-form" = "/admin/content/{{ entity_name }}/{{ '{'~entity_name~'}' }}/edit",
* "delete-form" = "/admin/content/{{ entity_name }}/{{ '{'~entity_name~'}' }}/delete",
* },
{% if bundle %}
* bundle_entity_type = "{{ entity_name }}_type",
* field_ui_base_route = "entity.{{ entity_name }}_type.edit_form"
{% else %}
* field_ui_base_route = "{{ entity_name }}.settings"
{% endif %}
* )
*/
class {{ entity_class }} extends SubEntityBase {
/**
* {@inheritdoc}
*/
public static function baseFieldDefinitions(EntityTypeInterface $entity_type) {
$fields = parent::baseFieldDefinitions($entity_type);
$fields['title'] = BaseFieldDefinition::create('string')
->setLabel(t('Title'))
->setRequired(TRUE)
->setSettings([
'max_length' => 255,
'text_processing' => 0,
])
->setTranslatable(TRUE)
->setRevisionable(TRUE)
->setDefaultValue('')
->setDisplayOptions('form', [
'type' => 'string_textfield',
'weight' => -4,
])
->setDisplayConfigurable('form', TRUE)
->setDisplayOptions('view', [
'label' => 'hidden',
'type' => 'string',
'weight' => -4,
])
->setDisplayConfigurable('view', TRUE);
return $fields;
}
}
