33. 实体Entity概述

龳龲龮龪龨龧龦龥龤龣龢龟龝龙龘Entity龒龎龍龎龌龊龉龈龍龇龅龪龟龂齿齾齻齹齸齷齶龌龢齴龙龘齷齲齮齫龨龧齨齦龙龘龎齢龂齿齡齻齠齢齝齛齙齿齖齓齻齒齏龌龂齿齎齊齿齻drupal齨齦龙龘鼻鼸鼵鼳鼲鼰齮鼯鼮龌鼬龟drupal齨齦龲鼫鼪龎龙龘鼩齠齢齛龪鼨鼦鼢鼳龍鼡鼟齮龌鼝鼙鼗鼦鼔drupal鼓鼏齮鼋鼈鼅龎龘鼄龪齠鼝鼃鼁黿齮entity齓黻黺黹黵黱黯龙龘黭黩黧黭黣龪黭黢龘齮黡龙龪龍黟齓龤龣點龙龘龌龍黟齓黜默齮黕黒齹齸鼋黎龟黋黊黈黄黂黀齓麾麽鼬麻龘龎齏齢麾麽鼬齓龙龘齮麷麶龙龘龍龲黜麴鼔鼰龎麳齓麱麭鼔麬齓黢黧齮黒麨麥麭齴麣麟麝麚麙麘麗麕齮齨齦齓麓麒鼬黢麏鼋黎麭麋龎麊麈麅麂麀齓龲齢齢龙龘齮鹾齠齢鹼鹻麭龙龘鼅龎龲鹺黣龪齮龪鹹鹷麀龙龘龌龲鼝鹴鹱齮鹰鹮黒鹬黯


龙龘(Entity):麙鼟黣龪鹠鼋鹝鹙鹕鹒齓鹑黢鹍鹋黱龙龘鹊
鹈龍鹇鼋鹄龇齓鹁鸾龎龌鸼齓鸸鸷
龙鸴黣龪齓黢龘齮黢黧


鼋黎鸲鸮龲鹬齎鸬龙龘齠齢齛齓鸩鸥鹴鹱齮龪龨龧麀龙龘黎龝龙龘(Entity):麙鼟黣龪鹠鼋鹝鹙鹕鹒齓鹑黢鹍鹋黱龙龘龒麋鹴鹱龎黕鸤鸢鸠齓齮龌鸟齠鼝鸛鸘齹齸齖麭龲麭drupal麀齓龙龘龎龂齿鸕鸒鹊

让我们从一个例子开始:

鸐鸎鼄龪鸊齹齸龍鸇鸄鸃鷿鷽鷺齮鼡鷹鸄php鷱龦龥龲齢鷯鷯齓鷭鷪齊鷩齮齹齸鼰麋鼝龂齿齾齻
鷨鷦鷢龲齢鷞黩齮鸄齖鷚鷖龲齢鷕鷑鷭鷪齓鷐鷌鷈齦齮鷹麱鷢龲齢鷞黩齖鷆鷄鷐鷌鷀鶽鶻齓麊鶸鶶鶴黣鶱鶮齮鶪鷢龲齢鷞黩齖鶩鶸url麀鷀鶽齓id齖鶦鶢鷭鷪齮黒麨鶠鼰鶞鶝鸩鷭鷭鷪齮齏齿鼵鶠鼰龲齢鷞黩鼙鶙鶕鶴黣齓鷭鷪齮麶鶻鶔麊鶸鶑麬鷀鶽鷐鷌齨齦齮鶪鶔鷐鷌龥鶏鶌鶈鶇麽齮鸄鶄鶞鶝鶻鷀鶽麬鷕鷑鷞黩齮鼰鶈鶇鷭鷪鼔鷢龲齢鶀鷐鷞黩齮鵿龍鸟鼰鵻鵷龍鸠鸢齓鷭鷪鼵鶠鼰鵻鵷鷞黩齮鼄龪鼅龦龥鵴鸟龲齢鵰鵬鷌齓鷭鷪齊鷩齮鼋鼈鵪鸥鷯鵨鵦鵣鼏php鵟龌齴齠鵜齓齷鵛黿鹊
鵣鵘齓鷭鷪齊鷩鸼黀鶻齮鼳鵖齹齸龥鼄鸟龍鵕齮齹齸麭麬鷚鷖鸟鷕鷑黭鶴黣黭鸩鷭黭鶦鶢黭鶀鷐黭鵻鵷6齢鷞黩齮鵐鵌鵈鸟鵇鼄龪齹齸鶝鸄齦鵃點鸘鵁鴾齮黜默龲齢鷭鷪鴺黯news齮齨齦鴴鴰6齢鼁鴯鵌鹒鷆鷄齏6齢鴮鶮齮鼄龪6齢鷞黩鴬黱龲齢鴺鷞黩鸟齮鸄黎鴨鴤齓url麀鴣鼢鼁鴯齝鶮黱鴢麊齮鷈齦鴡鴠麏鼋黎鵌鴟鵴齖鶴黣麬鴡鴠黺龧鴛麀齮鼄龪齠齢鷭鷪齊鷩鴬齓鸩鴣鴗鴕鸟齮麏鸩鴣鸢鷄鸟鵇

鼄龪麭鴑齖齹齸齓鷭鷪齊鷩鴏齷鼳鼻鸟齮齫黩黧鼢鴎鴋龎黎齦鵃點鸘鵁鴾鼁鴇鴃鴀麱龲齢齦鵃齴鴾齓鸒鳼鹁鴏齮鸊齹齸鳸鳵黎齦鵃點鸘齓鼁鴇齮龥鳲oop齓鳫鳪齮鶔龲鼫鳨麭麋點鸘齮鷹麱齖麭齠齢鳧鳦齮鳤鳠鳟鳞鳚齮齖鳖鴎麋黀龲齢鵬鷌齓cms齊鷩齮龌鸟齠齢鳏鴯鶻龥鼄鷭鷪齊鷩鴋龍齴龎cms麀齓龲齢鳦點鸘鹁鴏齮鳏麬鸟龲鹺鷭齓鼁鴯齖龙鼄鷭鷪齊鷩齮鳋鸄鳇鳄龍龲鵜齓鼁鴯齮鳃麶鸄龲齢鴺齖龙鼄鷭鷪齊鷩齮龥鳲OOP齓鳫鳪齮鲹齢鷭鷪齊鷩鸄龲齢點鸘鷐鶢齮鴋龍齴鴎龎龪cms麀鹁鴏齮鲸鳏鴎齓鸇鸄鼁鴯龎齠鵜齓黯(鲷鲵鲴鲱鲮鹕)

鵷鸟齠鼝齮鼵鼋黎鼳鲫鲨齓鴣鵪鸥鲦鼈麬齠齢鷭鷪鴺鼢齦鷱齮黕黒鶴黣鷭鷪齓鵟鲢鼋黎鲟鲝麊鶸鲙鲖齮鲓鳞鲐鲌黱鲊黄黄齮鴋鶠鼰齠鵜黯
$isOk=$new->validate();
鼵鼋黎麋鱹鱶鱵鱲齮齠鵜齖黯
$isOk=$new->access($operation, $account = NULL );鱤
鴢麊$operation黱鴮鶮鲐鱣齮黒龝create龒黭龝delete龒黄黄齮鴢麊$account黱鱢鶄點鸘
鼯鼮鼰鼔麬鱡鱝鷭鷪齓url鼋黎齠鵜黯
$url=$new->toUrl();

$new=new news(); //初始化新闻系统,新闻系统的所有逻辑都在这个类里面  
$new->create($arr); //创建一篇新闻,参数是一个数组,作为可选值,键名为新闻的字段名、键值为字段值,如:['title' => '这是新闻标题内容', 'body' => "这个是新闻内容"]  
$new->title="新的标题"; //创建后还能修改或赋值所有的新闻属性  
$new->save();//创建好了,这个对象自己负责保存新闻到数据库,cms程序简单的调用一个方法即可  
$new->load($id); //简单的调用一个方法就可以将以前保存的某篇新闻初始化到一新闻对象中  
$new->delete($id); //简单的调用一个方法就可以删除某篇新闻  
echo $html=$new->list(); //显示新闻列表  
echo $html=$new->toString (); //显示新闻  

齠齢龙鼄鷭鷪齊鷩齓鳏鴯龙龪龎鵐鱜鸟齮龪cms麀齒黡鱚黂龧齓鷹鱙麴齶鵬鷌齮鹁鸾鴮鶮鲫鲨鵇
鱗鵟鱓龍鱐鳏鸒鱍齠齨齓$new點鸘鼄龪黀鸟龂齿齾齻鴎鴃鱊麱鷭鷪齓麊鶸齮鼵龌點鷭鷪齓鱉鴺鴮鶮齮龲鼫鳨鴬鼔鵬鷌鸟鹊

龟麬齠齨麥鼋鼈鴏齷龦鱇鸟齮鴎鵇鼅龎龙龘鵇龝麙鼟黣龪鹠鼋鹝鹙鹕鹒齓鹑黢龒鵇齠齢鳏鴯鼅龎drupal麀龙龘鱃鰿齓鵰鵣齖鰼齮龙鸴麀drupal齊鷩齨齓龙龘鱃鰿鼄龪鴏齷龥鰻齓鸩鴣黀鰹齒鳄齦鹊

鱤鱤鱤 鰸麱齠鹺龦鱇齓鰷鰳齮鷹麱麭麭齠齢$new龙龘齮齹齸龥鼄龪cms麀龍鳞龎鷭鷪鼋黎齠齿鰯齮黡鱚齓鲱鲮黕黒黯黺鰫黭鷚鰨麏鼋黎齠齿鰯齮鴋龍齴鴺鰤龍黟鹁鴏齮齠齨鼅鷚鷖鸟龲齢鱃鰿黯龝龙龘鴺鰤龒齮鰢齦鷀麬齓$new鴋龎鰟鸥鴺鰤麀齓龲齢鹁鴏齮龍黟齓鴺鰤鼋鼈齝鹍龍黟鰛鷭鷪黭鷚鰨鰘黭麊鶸鴡鰤龍黟鰛鲐鲌黭鰤鰕黭鰒鰏黄鰘黭鰍點麊鶸齓鲙鲖龍黟黄黄齮黋鱗龌鰌鼰鸎鰊龲齢龙龘鴺鰤點鸘齖鶴黣龙龘齓齠鼝鹝齎鰉鰆齮鴎齒龙龘點鸘鰅鸢鴑齖鸇鸄鹊

鱤鱤 鼄龪龌鸟龙龘黭龙龘鴺鰤齓鱃鰿齮鱚齸黱cms齓 鷺鰄 鰸齖鸟鰁鰀齓鲫鲨鯾齮齹齸龥鼄齠鼝龙龘龌齢鯺黟鯸龊黯鳨龎齖鶴黣cms麀齓鲱鲮齓齮鼮鯴鯳龌齢鲐鲌齮鯲鼗龟龎id齮鸄齖鸮鹮齠鼝鲱鲮齮齹齸鼋黎鶔齠鼝鯺黟龊鯰鯯鴑齖齮鸼黀龲齢鯭鯫點鸘齮鯲鼗鯧鯭鯫龙龘齮鴎鴋鴃鱊id齠鵜齓鯭鯫麈鯦齮齒鯭鯫CRUD鼁鴯齮黡鱚龙龘鼅龍鸄鼲鯞龙鼄齠鼝鲱鲮齮鴋鶠鼰鯚鯖齠齢鯭鯫龙龘齮鯒鴣鯏鯌鯈鯅齓鯸龌麈鯦齒鼁鴯鼅鼋黎鸟齮齠鵜龲齖鼅鷚鷖鸟龲齢鷭鱃鰿黯鯭鯫龙龘龎龲鹺龙龘鴺鰤齮鯚鯖鴎齓龙龘龎鳦鴺鰤齮龪drupal麀鯂龊Node鼅龎鯭鯫龙龘齮鴋鴃鱊鲱鲮齓id黄齮龍黟齓鲱鲮鴺鰤齮黒黺鰫黭鷭鷪黄黄鼅龎鳦鴺鰤齮龪drupal齓麅麂齨齦鳦鴺鰤鯀鯧鮼鴺鰤齓bundles齮鮵鯾黹黵黱鮳黭鮲齮龪鷄鹴鼢鴎龎黟鴺鹑黢齓鮰鵌齮麷麶龌鼝龙龘龎鮮鰌鼰龌鳦鴺鰤齓齮鱚齸鼅鮮龌bundles鹊

黒麨鮮龌鼢鮪齴鴾黭齖鵛齓鮦鮤齮鷄鹴龙龘龎鼳鮣鼓齓齮鴎齸鸤黱鮡鸘齮鮞麙龌鼝鼨鮝黯麗鲱齓鵪鸥cms齊鷩點鲱鲮齓鮡鸘鴋龎麬鸟鮙鮗龲鮔齮龍黟鮙鮗龌龍黟麊鶸鴡鰤齮鮮龌鳏齴鴎齸黩黧鼢龎鹝黟齓齮鮮龌鸩鳤龲鳠齓鮡鸘鵴龙龘齠齢鱃鰿齖齮鼵龌鮓龥鰻黿齮麏鵪麏鮐php鹾齦鵃齴鴾麬齦鵃點鸘鮎鴬齓齴鴾龌齎齮齠鹺鮎鴬龪麗鲱齓龘鼄鼵鼳鮍齮麗鯅鴾鮊鮉鼲鸬鮆鮅鵰鸢鷄鵰鼻齮鹁麗鲱鴾鮊鮉鵐鮃鼅鸬鸠魿魾鳚鹊

鱤鱤 龪drupal麀鵴鼄龙龘鱃鰿鶻鼳鵖鼅龥鼄黩黧鼢龙龘龎龲鹺黣魼鰉鰆齓鲮麽齮黟鵟鰸鸟點鰉鰆齓鱉鹺鴮鶮齮魺麶黒鱗齮龙龘鼅龍鳞龎齊鷩麀魶鷄齓鲱鲮鸟齮鼵鼋黎鸄齖魵鷐鰅鰊齮龪drupal8麀鮗鰢鴏齷鸼黀鸟黒鹬齓龙龘齮黎魮鮔齎齊鶀鵴黯鰛鲷鲵鲴鲱鲮鹕鰘

龪drupal麀鸄鶄麏鼋黎鯏黜默龙龘齮龙龘齠齢鱃鰿齓龥鰻鼵龪鯚魫齮鴎龎鵦魩麱鮡鸘魮鮔齓鷀魨鹁鷀魨齓齮齹齸鶠鼰魧鸕鴎齓鹴鹱龝麙鼟黣龪鹠鼋鹝鹙鹕鹒齓鹑黢龒齮龟龍黜鼳魣黎鶻drupal鴏龍鶪龎龲齢cms齊鷩齮鹁龎龲齢麊麈麅麂齮龙龘鼅龎齏齢麅麂麀齓龲魡麓麒齓龌鸕鱣齓鼬齮魝齖魝黀黜麊龲鼫魛魝鼋龇鹊

魙鯰鳵鲌齮齹齸齖麭龲鹬魖鼁黺魔點龙龘齓鹴鹱黯

实体变体:  
    内容:  
        内容实体类型:  
            节点:  
                文章(节点的Bundles)  
                基本页(节点的Bundles)  
            分类:  
                词汇表A(分类的Bundles)  
                词汇表B(分类的Bundles)  
                词汇表...  
            内容块:  
                块内容A(块的Bundles)  
                块内容B(块的Bundles)  
                块内容... (块的Bundles)  
    配置:  
        配置实体类型:  
            视图(没有bundles)  
            菜单(没有bundles)  
            角色(没有bundles)  

实体Entities:

鹾鴾鮊鹼鹻齖魐齮龪drupal8麀龙龘龎龲齢魎魣魌魉黣鲱鲮鯲鰅鰊齓點鸘齮黕黒鶔麊鶸魉黣麬麊鶸鶶鼅龎龲鹺魎魣魌魉黣齮齠齢點鸘鷆鷄麊鶸齓鴣魇黭魉黣黭鶞鶝黭鵻鵷黭鲙鲖黄齮鹾鸄鶄鹼鹻齖魐齮龙龘龎鶕魶鷄麊鶸齓魃鮔鮡鸘齮鹝麷鸬龲齢鰀齓麊鶸鬿鰄齮齫鴎龍鴋龎鴃鬼麊鶸齮鼵鴃鬼鷆鷄麊鶸齓鼁鴯齮黒龲齢點鸘魵鷐龲鱝鷭鷪齮鴎鴃鱊鷭鷪鲐鲌黭鬻鲐鲌黭鲱鲮黭鬸鬵黄黄鲱鲮齮鹠鸾齠齢點鸘鼵鷀鬳鼁鴯鷆鷄齠鼝麊鶸齓魉黣黭鴣魇黭鵁鬰黭鵻鵷黄黄齮齏齿齠齢點鸘鼅龎齠鱝鷭鷪齓龙龘點鸘齮鴎鼅龎龲齢龙龘鹊

鱤鱤鱤 龪drupal麀龙龘鼰鷆鷄齓鹑鬭鼳鸥齮黕黒龙鼄鼋鶞鬪鵘黩鲦鼈鰛黟龲鲱鲮黣龪鸥齢鵘黩鰘齮鼋黹黵鲦鼈鰛龌鼝麈鯦龎鹷鬦鹝齎齓鰘黭鱉鴺鴮鶮鷐鷌齓鷆鷄黭鱉鹺鶀鷐齒鲱鲮齓鶦鶢鼁鴇黭鴨鴤鱹鱶鬥鬡黭魉黣鴤鲌黄黄齮鲱鬠鬜鬰鯳黕鸤鯞鬛齮鬘鱗鴎龎齊鷩麀龲齢鼳鰀齓鳦齊鷩齮鬖鬔龪鵪鸥鯭鯫黂龧鹋鼢齮黩齊鶀鯳鵌鸥齢鬑鲌齖鮦鮤龙龘鱉齢鬠鵌齮鼰鬍鴰鼏鬉龙龘鶠鼰鴴鴰鬈鼝鰢鷀龇鱣齾黯
鬅鳦齒鬄龧黯鴎齸鶔鴡鬃齢鬂髾髺黱龲齢鲹龘齮龙龘齊鷩麀鰀髸鸇鸄
麈鯦api黯鹴髶鲱鲮龙龘齓麊鶸鶶魉黣黭鶦鶢黭鷐鷌黄鹝齎鴤鲌
鴺鰤魌麊鶸api黯龙龘麏鼋黎麭麋龎鯞鸢麊鶸鴺鰤齮鰄鬖龪鴺鰤魌麊鶸黂龧鹋鼢齮龙鼄鼁髲鴮鶮
鱹鱶鬥鬡黯鸄鸬龙龘齓鴨鴤鱵鱲
鹷鬦齒黹黵黯龙龘齓鸥鹷鬦鲦鼈鰌龍鼋鯴

黎鼢齠鼝鬑鼰鲱鲮鮞麙鰼髱鵌髭齊鶀鰀鸥鴏齷龥髩鸟齮黒麨龲鼡鮐魩鹁齖鶔龍鯳髨鷖齮髤麭鹝齎黺鰫齮鼵魝龥髩齓鯲鴋龥髩鸟鼢鱝齓鲱鲮齮鷹鹬齖鯳龥髩齮髣鮊鼢髡鼋鼈麋麬髣魿鼏鬉齴鴾齮龲鳠龲鳠齓鷄鹴鼏鬉鹊

点燃好奇心,列出一个列子,先一窥实体的魅力吧:
在自定义模块的控制器中执行以下代码:

$node = \Drupal::entityTypeManager()->getStorage("node"); //获取节点实体  
$node ->create(['type' => 'article', 'title' => '实体测试', 'body' => "我的实体内容"]); //创建一篇文章  
$node->save();  

然后到管理页面后台的内容里面,看一看是不是就添加了一篇文章呢

$entity = \Drupal::entityTypeManager()->getStorage("node")->load(1);  
echo $entity->label();  

加载一个节点,显示它的标题

本书共71小节:

评论 (写第一个评论)