微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在视图中访问实体引用的字段views-view-fields.html.twig

如何解决在视图中访问实体引用的字段views-view-fields.html.twig

所以我有2种内容类型

  • 网络研讨会

网络研讨会有一个实体参考字段(label:speaker,id:field_person_speaker)

  • 人(多个值)

我在路径/ webinar上具有这些字段的视图(内容类型为webinar的字段的无格式列表)

  • 标题
  • youtubeID
  • 日期
  • 扬声器(格式化程序:呈现的实体)

我有一个呈现行的模板(views-view-fields--vcon-webinar.html.twig):

{% set title = fields.title.content %}
{% set date = fields.field_webinar_date.content %}
{% set url = path('entity.node.canonical',{ 'node' : row.nid}) %}
{% set speakers = fields.field_person_speaker.content %}

<div class="card h-100 shadow dl-webinar">
  <div class="card-body">
    <a class="dl-webinar-link" href="{{url}}"><span class="btn btn-light btn-sm dl-webinar-signup">Sign up</span></a>
    <div>
      <div class="d-flex">
        {{speakers}}
      </div>
    </div>
    <div>
      <div class="d-flex">
        <div class="p-3">
          <h4>{{title}}</h4>
          <p class="font-weight-light mb-0">{{date}}</p>
        </div>
      </div>
    </div>

  </div>
</div>

问题在于我无法获取所引用实体(扬声器)的各个字段值。我需要这些字段值(例如:field_person_first_name),因为我需要完全控制输出模板。

<div class="dl-webinar-bio d-flex align-items-end flex-row-reverse  flex-fill">
    <div><p class="dl-webinar-bio-name"><strong>First name,Last name</strong> <small class="font-weight-light">Project manager</small></p></div>
</div>

请有人帮我解决这个问题。。。

解决方法

最简单的方法是在特定的视图模式下呈现“人”内容类型。 然后,使用您期望的确切HTML结构覆盖模板node--person-yourviewmode.html.twig

所以您没有更改views-view-fields--vcon-webinar.html.twig模板。

和在node--person-yourviewmode.html.twig中:

<div class="dl-webinar-bio d-flex align-items-end flex-row-reverse  flex-fill">
    <div><p class="dl-webinar-bio-name"><strong>{{content.field_firstname}} {{ content.field_lastname}}</strong> <small class="font-weight-light">Project manager</small></p></div>
</div>

以上模板将在views-view-fields--vcon-webinar.html.twig

中调用

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。