web-dev-qa-db-fra.com

Par stockage groupé?

Dans Drupal 7, il y avait le début de Per-Bundle Storage (PBS) pour essayer de stocker les données de champ dans une seule table de base de données si cela avait du sens et était possible étant donné la nature du champ. Le PBS pour Drupal 7 module n'est jamais devenu très populaire, cependant et n'a pas été porté sur Drupal 8.

Je comprends qu'il est possible d'écrire un code d'entité personnalisé pour Drupal 8 pour stocker les données dans une seule table si vous le souhaitez (par exemple, l'entité User stocke ses champs dans users_field_data).

Je suis curieux de savoir s'il existe une solution facile que j'ai négligée pour stocker plusieurs champs dans une seule table de base de données.

4
greggles

Répondre à ma propre question sur la base des commentaires ici et de ma propre expérimentation. Dans Drupal 8, la création d'une entité avec des champs de base est plus simple qu'elle ne l'était dans Drupal 7. Voici les étapes que j'ai suivies pour créer une entité dans = Drupal 8 avec des champs dans la table unique. Je vais parler de ma situation: une entité Dog.

  1. Il y a de bons documents généraux sur Drupal.org sur les entités et les champs dans Drupal 8. Cette page sur définition et utilisation des définitions de champs d'entité de conten est particulièrement utile.
  2. J'ai également lu cet article skvare sur les entités dans Drupal 8 qui a beaucoup de bons conseils.
  3. J'ai commencé par installer Drush .
  4. L'Iran drush generate module-content-entity et a répondu aux questions. J'ai répondu aux questions:
    • "oui" pour le rendre utilisable
    • "non" aux paquets pour mon cas.
    • Le reste des réponses semblait simple.
  5. Dans le exampledog/src/Entity/Dog.php fichier J'ai modifié la fonction baseFieldDefinitions pour renvoyer un champ supplémentaire. Quelques exemples et documentation sur les types de champs se trouvent dans la page doc drupal.org mentionnée précédemment.

C'est ça. Les révisions semblent bien fonctionner pour ces domaines. L'intégration des vues fonctionne bien pour ces domaines. Les champs sont tous stockés dans la table de base.

4
greggles