logo

एक्स्ट्रा ब्लॉक टाइप्स (EBT) - नया लेआउट बिल्डर अनुभव❗

एक्स्ट्रा ब्लॉक टाइप्स (EBT) - स्टाइलिश, कस्टमाइज़ेबल ब्लॉक टाइप्स: स्लाइडशो, टैब्स, कार्ड्स, एकॉर्डियन्स और कई अन्य। बैकग्राउंड, DOM बॉक्स, जावास्क्रिप्ट प्लगइन्स के लिए बिल्ट-इन सेटिंग्स। आज ही लेआउट बिल्डिंग का भविष्य अनुभव करें।

डेमो EBT मॉड्यूल्स EBT मॉड्यूल्स डाउनलोड करें

❗एक्स्ट्रा पैराग्राफ टाइप्स (EPT) - नया पैराग्राफ्स अनुभव

एक्स्ट्रा पैराग्राफ टाइप्स (EPT) - एनालॉजिकल पैराग्राफ आधारित मॉड्यूल्स का सेट।

डेमो EPT मॉड्यूल्स EPT मॉड्यूल्स डाउनलोड करें

स्क्रॉल
16/10/2025, by Ivan

Menu

Drupal में एंटिटीज़ (Entities) के साथ काम करने की प्रक्रिया एकीकृत (unified) है, और सभी CRUD ऑपरेशन्स (Create, Read, Update, Delete) सभी एंटिटीज़ के लिए एक जैसी होती हैं। इस लेख में हम सीखेंगे कि कस्टम कोड में एंटिटीज़ के साथ कैसे काम किया जाए।

पहले कुछ सरल उदाहरण देखते हैं।

प्रोग्राम के माध्यम से नोड (Node) बनाना

use \Drupal\node\Entity\Node;
 
$node = Node::create([
  'type'  => 'article',
  'title' => 'Druplicon test',
]);
$node->save();

किसी नोड को बनाने के लिए, आपको सभी आवश्यक फ़ील्ड्स को भरना होता है — डिफ़ॉल्ट रूप से केवल Title फ़ील्ड आवश्यक होती है। आप नोड बनने के बाद उसके ऑब्जेक्ट तक भी पहुँच सकते हैं:

$node = Node::create([
  'type'  => 'article',
  'title' => 'Druplicon test',
]);
$node->field_text->value = 'Simple text';
$node->save();

create() मेथड Node.php क्लास में मौजूद होता है। यदि किसी एंटिटी प्रकार की अपनी create() मेथड है, तो उसी का उपयोग करना सबसे अच्छा होता है, हालांकि एंटिटी बनाने के सार्वभौमिक तरीके भी मौजूद हैं:

$node_entity_type = \Drupal::entityTypeManager()->getDefinition('node');
$node = new Node([
  $node_entity_type->getKey('bundle') => 'movie',
  $node_entity_type->getKey('label') => 'Foo',
  'field_release_date' => '1/1/2015',
]);
$node->save();

अंत में, save() मेथड का उपयोग करके हम एंटिटी को सहेजते हैं।

प्रोग्राम के माध्यम से नोड (Entity) अपडेट करना

$nid = 234; 
$node_storage = \Drupal::entityTypeManager()->getStorage('node');
$node = $node_storage->load($nid);
 
$node->title = 'New title';
$node->field_text = 'text';
 
$node->save();

एंटिटी फ़ील्ड्स को संपादित करने के बारे में विस्तार से हमने पिछले लेख में देखा था:

http://drupalbook.org/drupal/9111-work-entity-fields-programmatically

प्रोग्राम के माध्यम से नोड (Entity) हटाना

यदि आप केवल एक नोड हटाना चाहते हैं, तो यह delete() मेथड के माध्यम से किया जा सकता है:

$nid = 123;
$node = node_load($nid);
$node->delete();

प्रोग्राम के माध्यम से एक से अधिक नोड (Entities) बनाना

जब आपको बहुत सारे नोड्स लोड करने की आवश्यकता हो, तो उन्हें एक-एक करके लोड करना प्रदर्शन के दृष्टिकोण से महंगा हो सकता है, क्योंकि प्रत्येक नोड के अपने फ़ील्ड्स होते हैं और हर बार डेटाबेस से डेटा लाने के लिए कई SQL क्वेरी चलानी पड़ती हैं। यह तरीका अधिक प्रभावी है — सभी नोड्स को एक साथ लोड करना:

$nids = db_select('node_field_data', 'n')
  ->fields('n', ['nid'])
  ->condition('title', $my_title)
  // node_access टैग एक्सेस अधिकारों की जाँच करेगा।
  ->addTag('node_access')
  ->execute()
  ->fetchCol();
 
$nodes = Node::loadMultiple($nids);

प्रोग्राम के माध्यम से कई नोड्स (Entities) हटाना

$result = \Drupal::entityQuery("node")
  ->condition('created', strtotime('-30 days'), '=')
  ->execute();
 
$storage_handler = \Drupal::entityTypeManager()->getStorage("node");
$entities = $storage_handler->loadMultiple($result);
$storage_handler->delete($entities);

इस तरह आप Drupal में प्रोग्रामिंग के माध्यम से किसी भी एंटिटी को जोड़, अपडेट या हटा सकते हैं। सभी CRUD ऑपरेशन्स एक समान संरचना का पालन करते हैं, चाहे आप नोड्स, उपयोगकर्ताओं, टैक्सोनॉमी टर्म्स या किसी कस्टम एंटिटी के साथ काम कर रहे हों।