নামে পদটি লোড করুন


21

ড্রুপাল 7 এ, আমরা প্রাক্তনটির জন্য নাম ব্যবহার করে শব্দটি লোড করতে পারি। taxonomy_get_term_by_name($name)

ড্রুপাল 8 এ প্রদত্ত নামের মাধ্যমে টার্ম লোড করার কোনও উপায় আছে কি?

উত্তর:


19

এই কার্যকারিতাটি ড্রুপাল ৮-এ অবমুক্ত করা হয়েছে বলে মনে হচ্ছে পরিবর্তে
এই বিভাগটির_তত্ত্ব_লোড_মুক্তি_বিধ্বনি_ ফাংশনটি ব্যবহার করুন।

উদাহরণ

<?php

  /**
   * Utility: find term by name and vid.
   * @param null $name
   *  Term name
   * @param null $vid
   *  Term vid
   * @return int
   *  Term id or 0 if none.
   */
  protected function getTidByName($name = NULL, $vid = NULL) {
    $properties = [];
    if (!empty($name)) {
      $properties['name'] = $name;
    }
    if (!empty($vid)) {
      $properties['vid'] = $vid;
    }
    $terms = \Drupal::entityManager()->getStorage('taxonomy_term')->loadByProperties($properties);
    $term = reset($terms);

    return !empty($term) ? $term->id() : 0;
  }

?>

লিঙ্কযুক্ত ব্লগ পোস্ট আর লোড হবে বলে মনে হচ্ছে না। এটি খুঁজে পেতে অন্যদের জন্য সহায়ক হতে পারে এটি আবিষ্কার করুন। btmash.com/article/2016-04-26/…
gcalex5


2

পুনঃনামিত হিসাবে একাধিক মান প্রত্যাবর্তন করা শৃঙ্খলা ফাংশন , taxonomy_get_term_by_name($name, $vocabulary = NULL)নামকরণ করা হয়েছে taxonomy_term_load_multiple_by_name($name, $vocabulary = NULL)। আপনি যদি প্রথম ফাংশনের কোডটি লক্ষ্য করেন এবং আপনি এটি দ্বিতীয় ফাংশনের কোডের সাথে তুলনা করেন, আপনি লক্ষ্য করবেন যে সর্বাধিক প্রাসঙ্গিক পার্থক্য কলটির taxonomy_term_load_multiple(array(), $conditions)সাথে কলটি কলটি প্রতিস্থাপন করছে entity_load_multiple_by_properties('taxonomy_term', $values)

// Drupal 7
function taxonomy_get_term_by_name($name, $vocabulary = NULL) {
  $conditions = array('name' => trim($name));
  if (isset($vocabulary)) {
    $vocabularies = taxonomy_vocabulary_get_names();
    if (isset($vocabularies[$vocabulary])) {
      $conditions['vid'] = $vocabularies[$vocabulary]->vid;
    }
    else {
      // Return an empty array when filtering by a non-existing vocabulary.
      return array();
    }
  }
  return taxonomy_term_load_multiple(array(), $conditions);
}
// Drupal 8
function taxonomy_term_load_multiple_by_name($name, $vocabulary = NULL) {
  $values = array('name' => trim($name));
  if (isset($vocabulary)) {
    $vocabularies = taxonomy_vocabulary_get_names();
    if (isset($vocabularies[$vocabulary])) {
      $values['vid'] = $vocabulary;
    }
    else {
      // Return an empty array when filtering by a non-existing vocabulary.
      return array();
    }
  }
  return entity_load_multiple_by_properties('taxonomy_term', $values);
}

যেহেতু taxonomy_term_load_multiple_by_name()অবহেলিত হিসাবে চিহ্নিত করা হয়নি, আপনি এখনও যেখানে ফাংশনটি ব্যবহার করেছেন তা ব্যবহার করতে পারেন taxonomy_get_term_by_name()। উভয়ের উভয়কেই একই যুক্তিগুলির প্রয়োজন হয়, সুতরাং দ্রুপাল 8 এর কোডটিতে দ্রুপাল 8 এর কোড রূপান্তরকরণ, এই ক্ষেত্রে, কেবল ফাংশনটির নাম প্রতিস্থাপনের বিষয়।


0

শব্দটিতে ক্ষেত্রগুলি লোড করতে আপনি সত্তা ক্ষেত্রের ক্যোয়ারীও ব্যবহার করতে পারেন

$result = \Drupal::entityQuery('taxonomy_term')
          ->condition('field_my_field_name', 'Whatever Value')
          ->execute();

0

দ্রুপাল 8-এ টার্ম নামে একক টার্ম আইডি লোড করতে

$term = \Drupal::entityTypeManager() ->getStorage('taxonomy_term') ->loadByProperties(['name' => $term_name, 'vid' => 'job_category']); $term = reset($term); $term_id = $term->id();

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.