Eu quero carregar um determinado nó. Não sei o ID do nó, mas sei que ele tem um determinado campo de hash que é único e sei esse hash.
Eu quero carregar o nó através do campo hash. Como eu posso fazer isso?
Você pode conseguir usando EntityFieldQuery.
Para o D8, o EntityFieldQuery foi reescrito.
Drupal 8:
$query = \Drupal::entityQuery('entity_test');
$default_langcode_group = $query->andConditionGroup()
->condition('user_id', $properties[$default_langcode]['user_id'], '=', $default_langcode)
->condition('name', $properties[$default_langcode]['name'], '=', $default_langcode);
$langcode_group = $query->andConditionGroup()
->condition('name', $properties[$langcode]['name'], '=', $langcode)
->condition("$this->field_name.value", $field_value, '=', $langcode);
$result = $query
->condition('langcode', $default_langcode)
->condition($default_langcode_group)
->condition($langcode_group)
->sort('name', 'ASC', $default_langcode)
->execute();
Como obtenho os valores do campo de uma entidade?
$query = \Drupal::entityQuery('node')
->condition('status', 1)
->condition('changed', REQUEST_TIME, '<')
->condition('title', 'cat', 'CONTAINS')
->condition('field_tags.entity.name', 'cats');
$nids = $query->execute();
Node::
para carregar esses nós, correto?A maneira mais rápida para carregar um nó específico pelo valor do campo é usar o método
loadByProperties()
.Você especifica um ou mais valores de campo e retorna uma matriz que contém os nós que correspondem aos valores de campo:
Normalmente você faz um loop sobre os nós. No seu caso, você está procurando um nó específico. Um único nó também é retornado na matriz, portanto, aplique
reset()
e isso retornará o nó ou NULL se nada for encontrado:fonte
$node = reset...
), pois o hash em si é único.