वर्तमान पृष्ठ का मार्ग नाम किसमें उपलब्ध है page.html.twig
? पृष्ठ डिफ़ॉल्ट फ़ीडबैक फ़ॉर्म द्वारा जनरेट किया जाता है।
वर्तमान पृष्ठ का मार्ग नाम किसमें उपलब्ध है page.html.twig
? पृष्ठ डिफ़ॉल्ट फ़ीडबैक फ़ॉर्म द्वारा जनरेट किया जाता है।
जवाबों:
वर्तमान मार्ग का नाम पाने के लिए, उपयोग करें:
$route_name = \Drupal::routeMatch()->getRouteName();
आप अपनी थीम की ".theme" फ़ाइल में एक चर के रूप में वर्तमान पृष्ठ का मार्ग नाम जोड़ सकते हैं। इस तरह एक _preprocess_page फ़ंक्शन जोड़ें, और ड्रुपल कैश को साफ़ करें।
/**
* Implements hook_preprocess_page().
*
*/
function mytheme_preprocess_page(&$variables) {
$variables['route_name'] = \Drupal::routeMatch()->getRouteName();
}
तो आप इस तरह से page.html.twig में पहुँच सकते हैं:
{{ route_name }}
नोट: \Drupal::routeMatch()->getRouteName()
कभी-कभी अशक्त हो जाएगा।
यदि आप चीजों को ठीक से करने के लिए एक वर्ग के अंदर हैं, तो आप कंस्ट्रक्टर में रूट मैच सेवा को इंजेक्ट करना चाहेंगे और फिर इसे इस तरह से कॉल करेंगे:
$this->currentRouteMatch->getRouteName()
निर्माणकर्ता (और चर) इस तरह होगा:
/**
* The current route match.
*
* @var \Drupal\Core\Routing\RouteMatchInterface
*/
protected $currentRouteMatch;
/**
* Constructs a new ThemeTestSubscriber.
*
* @param \Drupal\Core\Routing\RouteMatchInterface $current_route_match
*/
public function __construct(RouteMatchInterface $current_route_match) {
$this->currentRouteMatch = $current_route_match;
}
यदि यह एक सेवा वर्ग है, तो आप इसे अपने कस्टम मॉड्यूल में yaml फ़ाइल में सेवा में पास करेंगे:
services:
mymodule.service:
class: Drupal\mymodule\MyCustomService
arguments: ['@current_route_match']