जवाबों:
आप EntityFieldQuery का उपयोग करके प्राप्त कर सकते हैं।
D8 के लिए EntityFieldQuery को फिर से लिखा गया है।
ड्रुपल 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();
मैं एक इकाई के क्षेत्र के मूल्यों को कैसे प्राप्त करूं?
$query = \Drupal::entityQuery('node')
->condition('status', 1)
->condition('changed', REQUEST_TIME, '<')
->condition('title', 'cat', 'CONTAINS')
->condition('field_tags.entity.name', 'cats');
$nids = $query->execute();
फ़ील्ड मान द्वारा किसी विशिष्ट नोड को लोड करने का सबसे तेज़ तरीका विधि का उपयोग करना है loadByProperties()
।
आप एक या अधिक फ़ील्ड मान निर्दिष्ट करते हैं और लौटाया गया एक सरणी है जिसमें फ़ील्ड मानों से मेल खाते नोड्स होते हैं:
$nodes = \Drupal::entityTypeManager()
->getStorage('node')
->loadByProperties(['title' => $title]);
आम तौर पर आप नोड्स पर लूप करते हैं। आपके मामले में आप एक विशिष्ट नोड की तलाश कर रहे हैं। सरणी में एक एकल नोड भी लौटाया जाता है, इसलिए लागू करें reset()
और यह नोड या NULL या तो रिटर्न करता है यदि कुछ भी नहीं मिला:
if ($node = reset($nodes)) {
// found $node that matches the title
}
$node = reset...
) की आवश्यकता नहीं है क्योंकि हैश ही अद्वितीय है।
Node::
उक्त नोड्स को लोड करने के लिए उपयोग करना होगा, सही?