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();  

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

本书共63小节:

评论 (写第一个评论)