8

I have an entity reference field in one content referencing an other content.

What I'm trying to achieve is to display that reference in a teaser format programmatically.

I was hoping that I could do something like this :

{{ node.field_entity_ref.view('teaser') }}

But that doesn't work. Do I need to declare a preprocess anyway ? If so what's the best practice ?

1 Answer 1

11

The best practice would be to configure the reference field in UI as teaser and use it in the node template:

{{ content.field_entity_ref }}

If this is not an option for your case, you would probably need some code in preprocess.

But much easier is to use the module Twig Tweak, which can render nodes without preprocess:

{{ drupal_entity('node', node.field_entity_ref.0.target_id, 'teaser') }}
2
  • 1
    Thanks. I didn't know about Twig Tweak, that sounds like a winner ! Only thing that bother me is that key 0. Do you know how I can iterate on node.field_entity_ref ?
    – pbonnefoi
    Commented Jul 21, 2016 at 7:51
  • 1
    @pbonnefoi something along the lines of {% set items = content.FIELD_NAME["#items"].getValue() %} {% for item in items %} {{ drupal_entity('paragraph', item.target_id, 'VIEW_MODE') }} {% endfor %}
    – henrijs
    Commented Nov 25, 2020 at 18:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.