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
---------------------
- 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'; } } - define a hook import this class hook_entity_expand_load.
-
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.
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;
}
Supporting organizations:
Project information
- Project categories: Decoupled
- Created by xiukun.zhou on , updated
Stable releases for this project are covered by the security advisory policy.
Look for the shield icon below.
