Jak wyświetlić listę wszystkich dostępnych typów jednostek?

Odpowiedzi:

29

Drupal 7

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

Drupal 8

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

zgodnie z sugestią Jasona ,

lub:

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

zgodnie z sugestią @RaisinBranCrunch . Uwaga \Drupal::entityManager()jest przestarzała w wersji 8.x.

kenorb
źródło
1
W przypadku Drupal 8 drush eval „print_r (klucze_kolejkowe (\ Drupal :: entityTypeManager () -> getDefinitions ()));”
Jason
2
Dla mnie to musi byćdrush eval "print_r(array_keys(\Drupal::entityManager()->getDefinitions()))";
RaisinBranCrunch
użyj Cpas E zamiast e w EntityManager. drush eval "print_r (keys_keys (\ Drupal :: EntityManager () -> getDefinitions‌ ()))"; entityManager jest depricated
Suresh Kumara,
1
entityManagerjest przestarzałe w najnowszych wersjach d8, użyj entityTypeManagerdla nowszych wersji
wranvaud
6

Drupal 8

Użyj polecenia konsoli drupal:

drupal debug:entity

lub (krótka ręka):

drupal de

Spowoduje to utworzenie zwięzłej listy podmiotów dostępnych w Twojej instancji.

Latinrickshaw
źródło
2
OP mówi konkretnie „Korzystanie z Drusha”
Frank Robert Anderson
2
drush eval 'system („drupal de”); ” 😉
diamondsea
Dzięki @diamondsea 😉
Latinrickshaw
3

Możesz utworzyć komendę drush o nazwie entities-list. Utwórz moduł, umieść w pliku o nazwie drush_entity.drush.inci wklej ten kod:

<?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));
}

Zainstaluj moduł, uruchom, drush cc drushaby wyczyścić pamięć podręczną drush i użyj następującego polecenia:

drush el

lub

drush entities-list

Jeśli chcesz dodać kolejny alias do polecenia, dodaj elementy do tablicy aliasów w następujący sposób:

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

I możesz użyć tych poleceń:

drush el
drush entities-list
drush another

Zawsze wynik będzie:

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

EDYTOWAĆ:

Istnieje inne rozwiązanie wykorzystujące moduł Drush Entity :

drush entity-type-read
Adrian Cid Almaguer
źródło
1
Inny downvoter, który nie mówi, na czym polega problem z odpowiedzią, po prostu naciśnij przycisk downvote. Ale jeśli nie powiesz, na czym polega problem, nie mogę go naprawić.
Adrian Cid Almaguer