Wie liste ich alle verfügbaren Entitätstypen auf?

Antworten:

29

Drupal 7

drush eval "print_r(array_keys(entity_get_info()));"

Drupal 8

drush eval "print_r(array_keys(\Drupal::entityTypeManager()->getDefinitions()));"

nach jason vorschlag ,

oder:

drush eval "print_r(array_keys(\Drupal::entityManager()->getDefinitions()));"

gemäß @RaisinBranCrunch-Vorschlag . Hinweis \Drupal::entityManager()wird in 8.x nicht mehr unterstützt.

Kenorb
quelle
1
Für Drupal 8 drush eval "print_r (array_keys (\ Drupal :: entityTypeManager () -> getDefinitions ())";
Jason
2
Für mich muss es seindrush eval "print_r(array_keys(\Drupal::entityManager()->getDefinitions()))";
RaisinBranCrunch
Verwenden Sie in EntityManager Cpas E anstelle von e. drush eval "print_r (array_keys (\ Drupal :: EntityManager () -> getDefinitions‌ ()))"; entityManager ist beraubt
Suresh Kumara
1
entityManagerist auf den neuesten Versionen von d8 veraltet, entityTypeManagerfür neuere Versionen verwenden
Wranvaud
5

Drupal 8

Verwenden Sie den Befehl drupal console:

drupal debug:entity

oder (kurze Hand):

drupal de

Dadurch wird eine kurze Liste der Entitäten erstellt, die in Ihrer Instanz verfügbar sind .

Latinrickshaw
quelle
1
Das OP sagt ausdrücklich "Using Drush"
Frank Robert Anderson
2
drush eval 'system ("drupal de");' 😉
Diamondsea
Thanks @diamondsea 😉
Latinrickshaw
3

Sie können einen Drush-Befehl mit dem Namen erstellen entities-list. Erstellen Sie ein Modul, drush_entity.drush.incfügen Sie es in eine Datei mit dem Namen ein und fügen Sie den folgenden Code ein:

<?php
/**
 * @file
 * Drush commands related to Entities.
 */

/**
* Implements hook_drush_command().
*/
function drush_entity_drush_command() {
  $items['entities-list'] = array(
    'description' => dt("Show a list of available entities."),
    'aliases' => array('el'),
  );
  return $items;
}

/**
 * Callback for the content-type-list command.
 */
function drush_drush_entity_entities_list() {
  $entities = array_keys(entity_get_info());
  sort($entities);

  drush_print(dt("Machine name"));
  drush_print(implode("\r\n", $entities));
}

Installieren Sie das Modul, führen Sie es aus drush cc drush, um den Drush-Cache zu löschen, und verwenden Sie den folgenden Befehl:

drush el

oder

drush entities-list

Wenn Sie dem Befehl einen weiteren Alias ​​hinzufügen möchten, fügen Sie dem Alias-Array Elemente wie folgt hinzu:

'aliases' => array('el', 'another'),

Und Sie können diese Befehle verwenden:

drush el
drush entities-list
drush another

Die Ausgabe lautet immer:

Machine name:
entity 1
entity 2
entity...
entity n

BEARBEITEN:

Es gibt eine andere Lösung mit dem Drush Entity- Modul:

drush entity-type-read
Adrian Cid Almaguer
quelle
1
Ein anderer Downvoter, der nicht sagt, was das Problem mit der Antwort ist, drückt einfach den Downvote-Button. Aber wenn Sie nicht sagen, was das Problem ist, kann ich es nicht beheben.
Adrian Cid Almaguer