Domanda

The terms returned contain depth as a Term object attribute.

$vocabulary = 'category';
$entity_manager = \Drupal::entityTypeManager();
$entity_storage = $entity_manager->getStorage('taxonomy_term');
$terms = $entity_storage->loadTree($vocabulary);

However, when I try to load terms by depth, I get an error.

$entity_manager = \Drupal::entityTypeManager();
$entity_storage = $entity_manager->getStorage('taxonomy_term');
$terms = $entity_storage->loadByProperties([
  'vid' => $vocabulary,
  'depth' => 0,
]);

The error is the following.

Uncaught PHP Exception Drupal\Core\Entity\Query\QueryException: "'depth' not found

What is the way to find attributes I can use on loadByProperties()?

È stato utile?

Soluzione

What is the way to find attributes I can use on loadByProperties()?

I guess with Devel's Kint, loading one and then looking at the "iterator contents" tab

  $entity_manager = \Drupal::entityTypeManager();
  $entity_storage = $entity_manager->getStorage('taxonomy_term');
  $term = $entity_storage->load(1);
  kint($term);

enter image description here

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a drupal.stackexchange
scroll top