Skip to main content
Drupal is a registered trademark of Dries Buytaert
Release: Views Bootstrap 5.5.4 — Minor update available for module views_bootstrap (5.5.4). Release: Rightup theme 1.0.3 — Minor update available for theme vartheme_bs5_rightup (1.0.3). Release: CommentOn 1.0.6 — Minor update available for module commenton (1.0.6). Release: ChatGPT Ads 1.0.3 — Minor update available for module chatgpt_ads (1.0.3). Release: Opensolr Search 5.1.3 — Minor update available for module opensolr_search (5.1.3). Release: ServiceM8 Webform Integration 1.2.1 — Minor update available for module servicem8_webform (1.2.1). Release: PostfixAdmin 1.0.0 — Initial release available for module postfix_admin (1.0.0)! Release: ip_analyser 1.0.3 — Minor update available for module ip_analyser (1.0.3). Module Revived: Swagger-PHP OpenAPI 3 documentation generator 1.0.0 — Module swagger_php updated after 10 months of inactivity (1.0.0). Security Coverage: Microsoft Azure AI — Module ai_provider_azure now has official Drupal security advisory coverage.

Drupal entity expand

Security covered

Part of the Entity ecosystem · 235 projects

View on drupal.org

This module provides an Entity extension model. You need to write your extension function

I think that many functions should belong to entity instead of a single function to deal with

Features

Extend the original function of Entity

HOW TO USE

---------------------

  1. create your expand file: src/EntityExpand/UserExpand.php
    <?php
    namespace Drupal\my_module\EntityExpand;
    
    use Drupal\entity_expand\EntityExpandBase;
    class UserExpand extends EntityExpandBase {
      public function a() {}
      public function b() {}
      public function c() {}
      public function newname() {
         return $this->entity->name->value . 'newname';
      }
    }
    
    
  2. define a hook import this class hook_entity_expand_load.
  3. function mymodule_entity_expand_load($entity, $entity_type_id) {
      if ($entity_type_id == 'user') {
        $entity = new \Drupal\my_module\EntityExpand\UserExpand($entity);
      }
      // more....
      if ($entity_type_id == 'taxonomy_term') {
        $entity = new \Drupal\my_module\EntityExpand\TaxonomyTermExpand($entity);
      }
      return $entity;
    }
    
  4. use this expand.
    //$user = entity_expand_load(\Drupal\user\Entity\User::load(1));
    $user = _entity_load('user', 1);
    $user->name->value // original method.
    $user->a();    // get expand entity method.
    $user->b();
    $user->c();
    $user->newname();
    $user->field_ref_user->ref()->a();  // get embed entity method.
    $user->field_ref_user->ref()->b();
    $user->field_ref_user->ref()->c();
    
    // default expand method.
    // set multiple values
    $user->setValues([
      'name' => 'new name',
      'field_a' => 'a value',
      'field_b' => 'b value',
    ]);
    $user->field_tags->refs(function($entity) {
      print_r($entity->label());
    });
    $user->field_category->listTextLabel();  // display field value label.
    render($user->view('full'));       // entity view.
    $user->field_a->val('no value');  // get field value and set default value.
    $user->field_ref_value->targets();  // get multiple target_ids.
    

Depends on

Dependencies of the latest stable release

No dependencies recorded for this project.

Required by

Tracked projects that depend on this one

No tracked projects depend on this one yet.

Activity

Tracked releases
5
Tracked since
Jun 2023
Latest release
2 years ago
Releases (12 mo)
0
Maintenance
Dormant

Release Timeline

Releases

Version Type Core Release date
1.0.4 Stable Aug 23, 2024
1.0.3 Stable Aug 23, 2024
1.0.2 Stable Aug 23, 2024
1.0.x-dev Dev Jun 23, 2023
1.0.1 Stable Jun 23, 2023