Drupal is a registered trademark of Dries Buytaert
drupal 11.3.7 Update released for Drupal core (11.3.7)! drupal 11.2.11 Update released for Drupal core (11.2.11)! drupal 10.6.7 Update released for Drupal core (10.6.7)! drupal 10.5.9 Update released for Drupal core (10.5.9)! cms 2.1.1 Update released for Drupal core (2.1.1)! drupal 11.3.6 Update released for Drupal core (11.3.6)! drupal 10.6.6 Update released for Drupal core (10.6.6)! cms 2.1.0 Update released for Drupal core (2.1.0)! bootstrap 8.x-3.40 Minor update available for theme bootstrap (8.x-3.40). menu_link_attributes 8.x-1.7 Minor update available for module menu_link_attributes (8.x-1.7). eca 3.1.1 Minor update available for module eca (3.1.1). layout_paragraphs 2.1.3 Minor update available for module layout_paragraphs (2.1.3). ai 1.3.3 Minor update available for module ai (1.3.3). ai 1.2.14 Minor update available for module ai (1.2.14). node_revision_delete 2.0.3 Minor update available for module node_revision_delete (2.0.3). moderated_content_bulk_publish 2.0.52 Minor update available for module moderated_content_bulk_publish (2.0.52). klaro 3.0.10 Minor update available for module klaro (3.0.10). klaro 3.0.9 Minor update available for module klaro (3.0.9). layout_paragraphs 2.1.2 Minor update available for module layout_paragraphs (2.1.2). geofield_map 11.1.8 Minor update available for module geofield_map (11.1.8).

graphql_entity_by_object

44 sites No security coverage
View on drupal.org

Overview

This module contains a GraphQL Field entityByObject where you can pass an serialized entity as an argument and you get the unserialized entity in return.

Use case

We use this field to be able to render paragraphs in the backend preview with graphql_twig with the same styling as in the frontend theme. It is not possible to display the preview of unsaved paragraph since it is not possible to query an unsaved entity with GraphQL (at least we found no possibility), this is the reason why we created this field.
Since it is not possible to pass an object as an argument, it is necessary that the entity will be passed serialized.

Usage

If you want to render paragraph in the backend preview with graphql_twig you need to extend your backend theme preprocess function and pass the serialized paragraph in the $variables['serializedObject'] argument.

function THEME_preprocess_paragraph(&$variables) {
  $variables['serializedObject'] = serialize($variables['paragraph']);
}

Now you should be able to use entityByObject to query paragraphs in your paragraph.html.twig template.

{#graphql
query ($serializedObject: String) {
  paragraph: entityByObject(serializedObject: $serializedObject) {
    ... on Paragraph {
      type: entityBundle
      ...Lead
      ...Text
    }
  }
}

fragment Lead on ParagraphLead {
  fieldTitle
  fieldLead
}

fragment Text on ParagraphText {
  fieldText {
    processed
  }
}
#}


{% set paragraph = graphql.paragraph %}

{% block paragraph %}
  {% block content %}
    {% include '@FRONTEND_THEME/modules/m-' ~ paragraph.type ~ '.html.twig' with {'data': paragraph} %}
  {%  endblock %}
{% endblock paragraph %}

Activity

Total releases
1
First release
Jul 2025
Latest release
8 months ago
Release cadence
Stability
0% stable

Releases

Version Type Release date
8.x-1.0-alpha3 Pre-release Jul 23, 2025