43. 实体entity(一):实体基类

龴龲 龯龬龫龧龦龥龢龟龞龜龙龕龓龑龐龏龎龋龉龇龆龅龃龲龁龑龐齽齺齶齴龁龑龐齱齰齯齬齨齧龑龐齱齰齧龑龐齶齥齡龧齟齞齥齜龯龅龃齘齖齓齐齎齍齉龐龆齇齄齃齀齥鼿鼼鼹龫鼵鼱鼭龕龑龐龆龅龃齥鼫鼹龫齓鼨鼤鼣鼡龆鼟鼹鼜

鼛鼙龑龐齽鼗鼭鼖鼕鼔鼓龲

龑龐鼑鼍龯鼋龲鼇鼅鼁黽黹齴鼖鼕黶黲黮黫

龑龐齱齰鼑鼍龲鼇鼅龑龐龆黪黽黹齥黨黤龓龑龐齱黢黟點龆黝黙黖黔

龑龐黓齬齨龲鼖龬龫黐鼑龑龐黓齬龆鼖鼕黎黋齥黊黇鼅齧黄黃黁麾齧龫麻麺麸齧麻麴麺麸齧麱麮麪麧齧麤麠黽黹齧麤麠麺麸麞麞齥麝鼕黓齬齨麛黝黙黪黽黹點鼨黢齥麘鼖麕齱齰龆龑龐鼑麓龆黓齬齨麒麏麎麊鼖麆龆齥麅麅麎麁黢龆齱

龑龐齱齰鼑鼍鹿鹼鹹麴齥龅鼔麎鹸龞鹶鹳鹱麾齓黢黟麛龑龐鹶鹳黝黙點龆黪黽黹龴齎齍鼫鼑鼍點齥鹰龓黎黋齥鼑鹮鼔龆黪黽黹黊鹭鹩鼭黢黟龆鹥鹤鹢鹞鹝鹚鹖鹓齥麛鹒黲龞鹐麒鼼鹸龞 set 黮黫鼑黪鹈鹇鹆鹄鹀鸽齥鹚鹖龑鸺麎龲

Drupal\Core\Entity\ EntityType 龲鸝 Drupal\Core\Entity\ EntityTypeInterface

鸺麛龬鸍點鼭龜鸊齱龑龐龲鸇鸄龑龐齴鸂鹝龑龐齥鷿黹鷽鷻鷹鷷鷴鷰鷭鷪鷧龑鸺鷣龑龐齱齰鼑鼍齥鷪鷧鷠鷞鷜黤鼼鷙龆龑龐齱齰龏齱龲

Drupal\Core\Entity\ContentEntityType Drupal\Core\Entity\ContentEntityTypeInterface

Drupal\Core\Config\Entity\ConfigEntityType Drupal\Core\Config\Entity\ConfigEntityTypeInterface

鼔齬鷗龑龐龧齜龑龐龏齱齘齖龲

Drupal\Core\Entity\Entity (Drupal\Core\Entity\EntityInterface)

龑龐鷏鷋鷈鷅麪鷂鷣龑龐龆龏龯黮黫齥鼫齱麎龬鸍黢黟龆鼖鶾龑龐鶻鼍龏齱齥鸇鸄龑龐龏齱龲

Drupal\Core\Entity\ContentEntityBase (Drupal\Core\Entity\ContentEntityInterface)

齴鸂鹝龑龐龏齱

Drupal\Core\Config\Entity\ConfigEntityBase (Drupal\Core\Config\Entity\ConfigEntityInterface)

鶷鷞鷜鶶齥鶵龜鶱鶯鶮鶪麕齉龐龆龑龐鷞鷜齥鶧麝麆鼖鶦鼖鶦龆龑鸺鷣龑龐龬鸍齥鶥鶡鼣鼡龑龐龧齜鼫龑龐龏齱齘齖齥麝鶝麎龯龙龆龅龃鼜

Entity 齱麎龬鸍點鶙鼭龑龐龆龏齱齥鶘鶗黢黟鷣龑龐龆鹸黲龏龯黮黫齥麛鶙鼭龑龐鼑鼍鷙鶷麒鶓黲齥麝麎鼖鶾鼑龑龐齽鼗鶒鷂鶻鼍鶵龆鶒鶏黔鷴齥鶍鼔鶌齃齬鷗麘鼖鶾黮黫齥麛龯龬龫龆龑龐齽齺龅龃點鶊鷣鶆鶂龬鸍龆龫鵾黨鵻鵹龑龐齥麒鼼鵷鵴龑龐鼑鼍龯鵱鷙鶧麎鼖鶾鵭鵫鵪齱齰鹈鹇龆龑鵦黽黹鼿龑鸺鷣黋黲麛麝鼕黽黹鷙龆黮黫龆鼑鼍齥鶥鶡 Entity 龏齱龆麺鵤鵠黽鼭龜鶾鵝黽龲

public function __construct(array $values, $entity_type)

鵌鼖鶾鵝黽 $values 麻鵊鼔鵈齎龆鹈鹇黽黹齥麎鼖鶾龕鵅黽鵄齥龑龐鼑鼍黲鶶龆鵂鵀黋鷭龑龐鴿龋鵀齥鵌鴾鶾鵝黽 $entity_type 麎鼖鶾鴻鴺鴶鴲鴯鴺齥麻鵊鵈齎龆麎鴭鼖齱齰龆鹈鹇齥鶝鶧麎龑龐齱齰 id 齥龑龐鼑鼍鴨黹鼫鹈鹇齜龑龐齱齰齯齬齨點鴤鴢鵭鵫龑龐黪黽黹龆龑龐齱齰鼑鼍齥齜鴟鴜鴙鴕鴒鴑黎黋鵈齎龆黽黹鼜

鼼鹢麎龑龐龏齱點龆鼔鼓鵻鵹齥鹹麴黮黫麊鴐鵻鵹鼜

鴏鴎龑龐麎鴋鷭鶆龲

鹚鹖龆鹩鼭龑龐 id 鴇鹞鹝鷣鴃麾鷭鶆鴂鹖鷭龑龐麎鶆麸龆齥鴀鳾鼇鼅齥鼫鹚鹖龑鸺鳺鼑龓鸇鸄龑龐麎鼭鳸龆齥鳶麊鳴鳲龓鸂鹝龑龐齥鶥鶡鸂鹝龑龐龏齱鼑鷪鹆鹄鷣鳯鳮齥鴃麾鷭鶆麎鷭鷣鸂鹝龆鼤齎鼤鵴麞麁鳪鶍鳨

龑龐鳧鷏龲

龑龐鶍鼔龫麻鳧鷏齧齟鵷鳧鷏齧鶪麕麻麴鳧鷏麞麞齥鳧鷏 url 鼭鼖黢鳤鳣齥鼑麓鼁黤鳟龆麱麮鼑鼍齥麛黪黽黹龆 links 鳚點黢黟鷣鳧鷏鳘鳗齥鳘鳗點麒鼼鼭鼼鹢鳖鳓鴺齥黲鸊鳒鼱鵭鳎齥麛鳊鳇鳧鷏鳅鳂鶮鲿鲽鷭齉龐龑龐龆齉龐鹓龲

龑龐齱齰鵀龲龑龐 id

齱齰黢黟點 bundle_entity_type 龆鹓 鴇鶱麛齱齰黢黟鶘 entity_keys 點龆 Bundle 龆鹓龲龑龐 bundle() 龆鹓

龑龐齱齰鵀 +'_revision' 龲鲵龯 id 齥鶝鶧麎龑龐黮黫 getRevisionId() 龆鹓

鳧鷏黎黋點鳂鲭鲬 Url Link 鼑鼍齥鼑鶶鷧龆龉龇麛鲣鲡龆龅龃點鹆鹄

黄黃黁麾龲

麝鷴鷭龜鸊齱龲麎鴋鼭鲝鲚麸齧鲚麸鶵麒鼼鹆鹄鲖鴒黎黋

鲕鼅鴲鲑龲

鲕鼅鴲鲑麒鼼鹸鴙齍鲕鼅龬鸍龑龐麎鴋龥鲍鲌鲈齥鼼鹰鲬鳅鲇鲕鼅鲅鳸齥麘鶾龑龐鼭黤鼋龆鹸黲鴲鲑齥鴲鲑鵀鷭龲龑龐齱齰 id+ 鲃龲鱿 + 龑龐 id

麒鼼鱾龑龐鹞鹝 cacheTags 鴿龋齥鼼鼨黢鱹鲡龆鲕鼅鴲鲑齥麝齴龑龐黤鼋龆鹸黲鴲鲑鼖鱶麺鱵龑龐鴲鲑齥鶝鶧麎龑龐龲 getCacheTags() 黮黫龆鹓

龑龐龆龫麻鴲鲑麛龑龐黝黙點龆 list_cache_tags 鳚鼨黢齥黊鹭鹩鼭鹞鹝齥齓麎鹚鹖龆龲龑龐齱齰 id+ '_list' 齥麝麒鼼鹸龞龑龐齱齰齱龆 getListCacheTags() 黮黫鴜齍

鼇鼅龑龐鳅鲅鳸鼼鹢鲕鼅鴲鲑龲

龑龐龫麻鸝齇麻鼁黲鱲鵷齍龆龫麻鱱鸐齧 4xx-response 鸝龑龐鸽鲌麒麏鼤鱥 4xx 鱤鱢齄鲅鳸鸐齧黤鼋鹸黲鴲鲑鸝鹸鴙黲齍鼫龑龐龆鱞黮鲅鳸鲕鼅鸐

黶黲鱝鱢黮黫龲

load($id) loadMultiple(array $ids = NULL) create(array $values = []) 麎鱝鱢黮黫齥麝鱎鱍鼁麒鼼麛齱龑鱋鲈鱇龦鶓黲齥麝鼕黎黋鶍鼔鴙鱆龑龐齱齰 id 齥鳶鶡鳅鱄麊鴙鱆齥鱃鴒黊鱁鴜鴙鰾麒鼼鹸龞齱鵀齥麝黲齍鷣鸄齨點龆鼼鹢鰻鰹龲

鸄齨 id 龲鲃 entity_type.repository 鱿

齱龲 Drupal\Core\Entity\EntityTypeRepository

鼫鰻鰹麪麧龜鶾鰲鰱黮黫龲

getEntityTypeFromClass($class_name) 龲鹸龞鰭鰬黢齱鵀黨鴜齍龑龐齱齰 id

getEntityTypeLabels($group = FALSE) 龲鴜齍鶙鼭龑龐齱齰龆鰥齺鴲鲑齥鵝黽鼨黢麎鴋鰡鰟龑龐黝黙點龆 group_label 鷴鵄鰜鰘齥黊鹭龑龐黝黙點鹩鼭鹞鹝 group_label 齥鱃鴒鳂鹒黲黝黙鼑鼍點龆鹓齥龬鸍點鶙鼭龑龐鹚鹖鴿龓龜鶾鷴鵄齥鷴鷰鷭鸇鸄龑龐鵄齴鸂鹝龑龐鵄齥黤黢黟龆龑龐麒鼼鼨黢鼫鴲鲑鳊鳇黤鳟龆鵄齥鹒黲鼫黮黫鵊鱋黊鹢龲

        $Labels= \Drupal::service("entity_type.repository")->getEntityTypeLabels(true);
        foreach ($Labels as $k=>$v)
        {
            echo "分组: ".$k."\n";
            foreach ($v as $a=>$b) {
                echo "   ".$a." : ".$b."\n";
            }
        }

鸂鹝鴨鰆鵂齴鸂鹝鴨鰆鵀龲

鸂鹝龑龐麒鼼鼭鴨鰆鶍鳨齥麒鼼鴨鰆鰃鷪龆鸇鸄龑龐鴇鸂鹝龑龐齥麛鰂鰀鸂鹝龑龐鳅鯽鼭鶙鴨鰆龆龑龐鰭黔鼅麛鶶鯻鳂鶮鰂鰀齥鶥鶡麛鸂鹝龑龐龏齱點黢黟鷣鼖鶾 $dependencies 鴿龋 齥鶶麎鼖鶾黽鵄齥鶘鶗鼇鼅鼁鼫鸂鹝鶍鼔龆鴨鰆齥齉龐鶧麎鴨鰆鵀齥鶶黨黤鶮鴨鰆龑龐龆 getConfigDependencyName() 黮黫齥

麛龬鸍點鼭鳅鯸鶍鼔齓鴨鰆黇鼅麛黽鵄鶘鹆鹄鵈鯴齥鶍鼔鼖鶾黽鵄鵂鵀齥鹚鹖鹢齥鸇鸄龑龐龆鴨鰆鵂鷭鲃 content 鱿齥鸂鹝龑龐龆鴨鰆鵂鷭鲃 config 鱿齥麝鼿麊黲麛龦黙麪齍龆 $dependencies 鴿龋點齥鼼鶵鳂鼭龐鳂

齱齰鲈黽黹龲

龑龐麒鼼鹸龞齱齰鲈鵄鹳麪麧龆鯰麏鯭鲈鷭鯩鳲齱齰龆齱齰鲈黽黹鼑鼍齥麝麆麒鼼鹆鹄鯧鯣黮鹰龆黎黋齥鹿黊黽黹鯡鯞麞麞齥麛鷣鷗龯齀龦齡龧齞鯜龯龬龫龆齱齰鲈 API 龅龃齥麛龏齱點齓鼖鶾龑龐鯭鲈鷭齱齰鲈黽黹龆黮黫鷭龲

getTypedData() 齥鯖鯒齇齄麎龲

$class = \Drupal::typedDataManager()->getDefinition('entity')['class'];

$this->typedData = $class::createFromEntity($this);



鼫黮黫麛鸂鹝龑龐龏齱齴鸇鸄龑龐龏齱點鹩鼭鶮鯎鳮齥鸊黔鷴龑龐鯊鷏鹒黲鶶齥鹸龞齱齰鲈黽黹齯齬齨鴜齍龆龑龐鹶鹳鳯鼔黢黟黊鹢龲

class齱齰齱龲Drupal\Core\Entity\Plugin\DataType\EntityAdapter

definition_class黢黟齱龲Drupal\Core\Entity\TypedData\EntityDataDefinition

list_class龫麻齱龲Drupal\Core\TypedData\Plugin\DataType\ItemList

list_definition_class龫麻黢黟齱龲Drupal\Core\TypedData\ListDataDefinition

deriver鯉鳇齱龲Drupal\Core\Entity\Plugin\DataType\Deriver\EntityDeriver

麒鼼鵷鵴麎龲

Drupal\Core\Entity\Plugin\DataType\EntityAdapter::createFromEntity($this);

鲚麸鷣龑龐龆齱齰鲈黽黹鼑鼍

鯆龦龑龐龆齱齰鲈鯃麊鯂鮿鸂鹝龑龐齥鮻龲 https://www.drupal.org/node/1818574

鶥鷭齱齰鲈鳂鲭鲬齍鴻鮧 api 齧龑龐鮥鮡齧鹶鹳鯉鳇麞鸇鸄齥齓麛龉龇鮟鲭鲬龆鸇鸄鶵鮝鮜齘鼖鶾龅龃鮛齃鮘鷗

鮖鮔鵻鵹龲

  1. 龴鱎龑龐龏齱點鹩鼭麪麧 get set 黮黫齥鷪鷧麛鸇鸄龑龐龏齱齴鸂鹝龑龐龏齱點龑鸺

本书共78小节:

评论 (写第一个评论)