Saya ingin memuat simpul tertentu. Saya tidak tahu id dari node tetapi saya tahu bahwa ia memiliki bidang hash tertentu yang unik dan saya tahu hash itu.
Saya ingin memuat simpul melalui bidang hash. Bagaimana saya bisa melakukan itu?
Anda dapat mencapai dengan menggunakan EntityFieldQuery.
Untuk D8 EntityFieldQuery telah ditulis ulang.
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();
Bagaimana cara mengambil nilai bidang entitas?
$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::
untuk memuat kata node, benar?Cara tercepat untuk memuat simpul tertentu berdasarkan nilai bidang adalah dengan menggunakan metode ini
loadByProperties()
.Anda menentukan satu atau lebih nilai bidang dan dikembalikan adalah array yang berisi node yang cocok dengan nilai bidang:
Biasanya Anda mengulang simpul. Dalam kasus Anda, Anda mencari satu simpul tertentu. Satu node juga dikembalikan dalam array, jadi terapkan
reset()
dan ini mengembalikan node atau NULL jika tidak ada yang ditemukan:sumber
$node = reset...
) karena hash itu sendiri unik.