मुझे पृष्ठ का शीर्षक कैसे मिल सकता है?


13

drupal_get_title() Drupal 8 से हटा दिया गया है। मैं Drupal 8 में पृष्ठ का शीर्षक कैसे प्राप्त कर सकता हूं?

जवाबों:


21

यदि आप परिवर्तन रिकॉर्ड की जांच करते हैं, तो आपको निम्नलिखित मिलना चाहिए: drupal_set_title () और drupal_get_title () हटा दिए गए थे

आपको जानकारी के सभी के लिए परिवर्तन नोटिस पढ़ना होगा, लेकिन यहाँ एक प्रारंभिक बिंदु है:

drupal_get_title ()

जैसा कि अब मार्गों पर शीर्षक विभिन्न तरीकों पर सेट किया जा सकता है (ऊपर देखें), drupal_get_title () हटा दिया गया है। इसके स्थान पर आपको title_resolver सेवा को कॉल करना चाहिए।

द्रुपाल al

<?php
  $title = drupal_get_title();
?>

द्रुपाल al

<?php
  $request = \Drupal::request();
  if ($route = $request->attributes->get(\Symfony\Cmf\Component\Routing\RouteObjectInterface::ROUTE_OBJECT)) {
    $title = \Drupal::service('title_resolver')->getTitle($request, $route);
  }
?>

1
स्वीकृत प्रतिक्रिया पुराना है: CurrentRouteMatch के लिए इस थ्रेड में कहीं और देखें।
JP

7

के अनुसार batch_test.module(D8.4) निम्नलिखित ठीक काम करना चाहिए:

$request     = \Drupal::request();
$route_match = \Drupal::routeMatch();
$title       = \Drupal::service('title_resolver')->getTitle($request, $route_match->getRouteObject());

अधिक जानकारी के लिए देखें public function TitleResolver::getTitle


0

ध्यान दें

इस प्रश्न के लिए स्वीकृत प्रतिक्रिया पुरानी है: अनुरोध पैरामीटर देखें , मार्ग का नाम, और रूट ऑब्जेक्ट को रूटमैच के माध्यम से एक्सेस किया जाना चाहिए

आपको वर्तमान मार्ग को पुनः प्राप्त करने के लिए current_route_match सेवा का उपयोग करना चाहिए , और फिर इसके मापदंडों को पढ़ना या संशोधित करना चाहिए। यह किसी भी सिम्फनी आदि जादू को लपेटता है।

प्रक्रियात्मक कोड में, आप निम्न के समान कोड का उपयोग करेंगे।

$route = \Drupal::routeMatch()->getCurrentRouteMatch()->getRouteObject();
$title = $route->getDefault('_title');

ऑब्जेक्ट-ओरिएंटेड कोड में, आपको निर्भरता इंजेक्शन का उपयोग करना चाहिए और सेवा को इंजेक्ट करना चाहिए ।


$route->getDefault('_title');केवल एक ही नहीं है तो क्या करें $route->getDefault('_title_callback');?
लेमनकैंस

उदाहरण के लिए example.com/user/1
leymannx

2
यह TitleResolver को बायपास करता है इसलिए सभी स्थितियों को संभालता नहीं है। api.drupal.org/api/drupal/…
imclean

इस घोल का उपयोग करने से अप्रतिबंधित शीर्षक मिलेगा।
सऊद अलफदली

-3

द्रुपाल al

$request = \Drupal::request();
  // Assuming the Request is $request.
  if ($request->attributes->has('_title')) {
    return $request->attributes->get('_title');
  }

मैंने इस प्रतिक्रिया को नीचे चिह्नित नहीं किया, लेकिन ऐसा लगता है कि ->get('_MAGIC')विधि दुर्भाग्य से पदावनत है और ज्यादातर D8 से हटा दी गई है: drupal.org/node/2124749
JP
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.