访问引用的节点字段 - 字段级别模板 -- theming 领域 和 entities 领域 drupal 相关 的问题

Access A Referenced Node's Fields - Field Level Templating


0
vote

问题

中文

我的内容类型,具有参考字段到另一个内容类型。这允许无限量的条目。

我为此字段创建了一个模板: field--node--field-my-fields.html.twig

我希望能够访问我引用的节点的字段。通常您可以通过访问实体来执行此操作,但我似乎无法执行此操作。

  {% for item in items %}   {{ kint(item.content) }} {% endfor %}   

我觉得这应该真的很简单,但我只是找不到进入田地的方法!

提前感谢任何答案。

英文原文

I have a content type with a reference field to another content type. This allows an unlimited amount of entries.

I've created a template for this field: field--node--field-my-fields.html.twig

I want to be able to access the fields of my referenced node. Usually you can do this by accessing the entity, but I can't seem to do this.

{% for item in items %}   {{ kint(item.content) }} {% endfor %} 

I feel like this should be really simple, but I just can't find a way to get access to the fields!

Thanks in advance for any answers.

     
       
       

回答列表

2
 
vote
vote
最佳答案
 

item.content 中是一个渲染阵列,通常您可以在"#" 键中访问引用的实体(用于大多数显示设置):

  {{ item.content['#node'].field_name.value }}   

字段对象

获取字段值的另一种方法是使用 99887662中的字段对象和循环浏览FieldItemList:

  {% for item in element['#items'] %}     {{ item.entity.field_name.value }} {% endfor %}   

然后,您是独立的字段的显示设置。

背景信息,请从berdir https://www.md -systems.ch/blog/techblog/2017/02/20/twig-and-entity-field- API-or-over-to-connow-nodehtmltwig 用于格式化输出和底层对象之间的差异。在字段模板中,您不需要返回父节点对象,因为您可以直接访问字段对象。如果要访问其他字段,则可以从 element['#object']中获取父节点

 

In item.content is a render array and usually you can access a referenced entity in a '#' key (for most display settings):

{{ item.content['#node'].field_name.value }} 

Field Object

Another way to get the field values is using the field object in element['#items'] and loop through the FieldItemList:

{% for item in element['#items'] %}     {{ item.entity.field_name.value }} {% endfor %} 

Then you are independent from the display settings of the field.

For background information see this blog post from Berdir https://www.md-systems.ch/blog/techblog/2017/02/20/twig-and-entity-field-api-or-how-to-take-control-of-nodehtmltwig for the difference between formatted output and the underlying objects. In a field template you don't need to go back to the parent node object, because you can access directly the field object. You can get the parent node from element['#object'] though, if you want to access other fields.

 
 
   
   
0
 
vote

在mytheme上使用预处理功能。您可以:

  function MYTHEME_preprocess_field(&$variables, $hook) {   ...   $element = $variables['element'];   $title  = $element['#object']->getTitle();   $variables['title']['#markup'] = $title;   ... }   
在此时,在Field.Twig中您拥有 {{ title }} 变量
 

Using preprocess function on MYTHEME.theme file you can :

function MYTHEME_preprocess_field(&$variables, $hook) {   ...   $element = $variables['element'];   $title  = $element['#object']->getTitle();   $variables['title']['#markup'] = $title;   ... } 

At this point, in field.twig you have the {{ title }} variable

 
 

相关问题

1  如何使我的自定义主题建议最具体  ( How to make my custom theme suggestion the most specific ) 
是否可以保证我的自定义主题建议是主题建议列表的顶部?类似于以下的东西 <!-- FILE NAME SUGGESTIONS: x my-custom-theme-suggestion.html.twig x input--textfield.html.twig // ALSO WHY DO I HAVE...

0  如何从Drupal 8中获取Managed_filed的文件生成图像样式,并用作DIV的背景图像  ( How to get file from managed filed in drupal 8 generate image style and use as b ) 
我已经创建了一个表单,以提起在主题设置页面上上传图像,如 $form ['ad_tv']['tv_adbackground'] = array( '#type' => 'managed_file', '#title' => t('Hintergrundbild'), '#re...

0  仅在未选择选项(x)时,才能显示字段  ( How to display a field only if option x isnt selected ) 
在我的一个内容类型中,我有一个 status 字段(field_status),它是列表(文本)字段显示3无线电按钮选项设置为以下键|标签值: 0 | In Stock 1 |沉积 2 |出售 我有一个自定义枝形模板文件的这个内容类型,并且想知道如果选项不是0(有货),我将如何显示该值。有货是几乎是默认选...

4  渲染曲线模板中的反应组件  ( Render react components in twig templates ) 
我在我的主题中使用React JS(通过NPM安装),并使用REST导出视图。我想将JSON视图数据渲染成React组件并在Twig模板中调用它们。 我现在的工作方式是我有js / main.js导入组件,例如:js / components / slider.jsx等。组件文件决定渲染的位置。例如: R...

0  如何在页眉中显示节点图像以获取自定义主题?  ( How to display node image in page header for custom theme ) 
我正在扩展Tweme主题(一个引导映像),我希望节点页面上的"banner_image" 字段显示在标题中。 page.tpl.html模板来自tweme的标记为标题,但这不起作用,因为(我相信......)该模板无法访问 $content 变量: print render($content['field_re...

1  通过以编程方式从菜单树数组渲染自定义菜单块  ( Render custom menu block from menu tree array of links programmatically ) 
在这里是我所拥有的:自定义菜单(侧面导航)模仿主/辅助菜单树,显示了显示根菜单项的整个子树(Dine,Play,Stay)您的整个子树下。 可以使用内容类型中的复选框字段缩短此SidenAV。如果选中,Sidenav将递归显示已选中的页面和所有子项,但省略已检查页面的任何父母。我已成功创建该菜单,这一切都在被...

0  如何在模板中使用缓存和条件渲染?  ( How to work with caching and conditional rendering in a template ) 
我添加了自定义模块函数,以允许 is_front 条件在块模板内工作。目的是在主页上显示网站口号,但不在网站的其余部分。该规则正常运行,但网站的缓存导致它会错误地呈现。如果我从首页清除缓存,则Slogan将显示Sitewide。如果我从另一个站点页面清除缓存,则在首页上不会显示Slogan。 我假设它是因为块的显示在...

3  如何只添加特殊类别,只能仅为某些区域生成的所有块?  ( How can i add special classes to only all blocks thats generated in certain reg ) 
我想向自动在自定义区域生成的每个块中添加一些类。 例如,我想要在侧边栏中生成的所有块 - 左侧有一些特殊类,另外我不想在其他地区的那些块有那些类。 我尝试使用以下代码的内容将所需的类添加到左边栏中生成的每个块: region - sidebar-letth.html.twig {% set cla...

3  如何编辑Misc / print.css而不更改核心  ( How to edit misc print css without changing core ) 
我想编辑书本模块参考的核心/杂项/ print.css,我不知道如何。 如果我应该在某个地方移动print.css并在我的主题中加载新的print.css.info,或者是另一种方式对核心/杂项/ print.css进行更改而无需更改核心? ...

1  如何主题表行链接特定列数据?  ( How to theme table row to link particular column data ) 
我使用以下代码创建了管理部分中的表记录列表。 class userDownloadedFiles extends ControllerBase{ public function userList() { $header = array( array('data' => $this->t('Username'...

1  如何在Page.html.twig中使用jQuery?  ( How do i use jquery in page html twig ) 
在drupal 7中,我使用了一些javascript,在page.tpl.php文件中使用以下代码。 <script type="text/javascript"> (function($) { $( ".mobile-menu-button" ).click(function() { ...

0  如何编写Page.tpl.php标题部分  ( How to write page tpl php header section ) 
我正在使用带有drupal 7.i的引导映像有要求设计标题如下: 我的tpl文件如下所示: <div class = "container"> <div class = "row"> <div class = "col-md-8 col-sm-8 col-xs-12 col-lg-8"> // copy t...

1  为什么我的Drupal 8引导次映像显示搜索结果?  ( Why doesnt my drupal 8 bootstrap subtheme show search results ) 
我有一个引导象形物,我正在使用以下网站 - kobejet.com。 一切看起来并一直正常工作,直到大约2周前,当搜索结果开始只显示数字,没有实际结果。 似乎正在返回结果,因为编号是正确的,因为应该有多少结果。例如,如果您搜索"计算机" - 应该有大约14个结果,但只有编号显示。 我试图越过我的安装,将我的孩子/...

1  模块模板文件以扩展主题  ( Module template file to extend theme ) 
我希望我的模块(事件)拥有自己的模板文件,但扩展了当前启用的基本主题。 hook_theme() : function events_theme($existing, $type, $theme, $path) { return array( 'test_events' => ar...

0  可以以编程方式对主题/渲染视图禁用吗?  ( Can views theme rendering be disabled programmatically ) 
我正在使用默认视图RSS显示和默认情况下创建RSS Feed,它包含一堆使输出为无效XML的字符(我认为这与与双编码或其他相关的视图中的错误有关相关功能)。 所以,解决此问题,在hook_views_pre_render()期间我能够用php来操作字段以输出有效的东西。在视图中我"预览" 输出时,它就像它一样。 但...

1  自定义模板文件以使用主题html / page.tpl [复制]  ( Custom template file to use themes html page tpl ) 
这个问题已经在这里有一个答案: 从hook_menu() (1答) Cl...

-2  将徽标添加到自定义主题作为背景图像  ( Adding logo to a custom theme as background image ) 
我有一个我正在努力的自定义Drupal 8主题。要求是此自定义主题的客户端徽标是HTML对象上的背景图像。我还需要添加脚本,根据页面的其余部分的背景,互换两个不同图像之间使用的背景图像。 在哪里可以在drupal 8自定义主题文件中添加这些CSS样式和JavaScript代码? ...

3  如何在树枝中获取媒体实体字段值?  ( How to get media entity field value in twig ) 
有时需要获得字段的实际值(不是格式化/呈现的字段),例如,要检查 true 或 false 。 如果我想在Twig模板中获取节点或段段落段落( node.html.twig / 段落.html.twig )我可以使用 node.field_my_boolean.value 分别 paragraph.field_my...

1  是否有可能组织模板文件?  ( Is it possible to organize template files ) 
因为我已经更熟悉drupal,我一直越来越多地利用模板文件。但是,模板文件的命名约定使它们难以组织。是否可以将模板文件组织到主要模板目录中的不同目录中?我正在使用drupal 7。 如果它是不可能的,还有替代方法组织模板文件吗? 谢谢! ...

1  为什么“主页内容”块在升级核心后不显示节点内容?  ( Why does the main page content block not display node content after upgrade of ) 
我将Drupal Core升级到8.3.1今天早上。我还在我们的生产网站上升级了在Tools 8.x-1.1,CAPTCHA 8.X-1.0-Beta1等中的模块。 现在,"主页内容" 块不会输出节点内容并输出以下内容: < data-history-node-id="46" class="ds-2col-sta...




© 2021 it.wenda123.org All Rights Reserved. 问答之家 版权所有


Licensed under cc by-sa 3.0 with attribution required.