मार्ग दृश्य का नाम कैसे प्राप्त करें?


16

अपने कस्टम सबमिट हैंडलर में, मैं एक व्यू पेज Url पर रीडायरेक्ट करना चाहता हूं, मान लीजिए कि मेरा व्यू नाम टीम है और इसका रास्ता है /admin/team, मुझे पता है कि मुझे उपयोग करना चाहिए $from_state->setRedirect('route');लेकिन जब मैंने $from_state->setRedirect('/admin/team');गलती से सामना करने की कोशिश की , तो मैं व्यू रूट नाम कैसे प्राप्त कर सकता हूं?


यह स्थिर YAML मेनू कॉन्फ़िगरेशन के लिए भी आवश्यक है।
vijaycs85

1
प्रत्यक्ष प्रतिक्रिया नहीं है, लेकिन मेरे पास एक ही प्रश्न था कि किसी अन्य कस्टम मॉड्यूल में एक कस्टम दृश्य से लिंक करने के लिए ताकि कॉन्फ़िगरेशन फ़ाइल मेनू में: MODULE.links.menu.yml रूट विकल्प के साथ एक नोड बनाएं route_name: view.YOUR_CUSTOM_MODULE_CONTAINS_CUSTOM_CONTENT_TYPE.page_1यदि पेज 1 पेज व्यू मोड का नाम है।
:

जवाबों:


39

देखने के लिए सही रूटनेम view.VIEW_MACHINE_NAME.PAGE_MACHINENAME(दूसरे शब्द में "view.$view_id.$display_id") है। कुछ इस तरह का प्रयास करें

use \Drupal\Core\Url;

$url = Url::fromRoute('view.VIEW_MACHINE_NAME.PAGE_MACHINENAME');
$form_state->setRedirectUrl($url);

और आपके मामले के लिए

$url = Url::fromRoute('view.team.page_1'); // page_1 is my guess as to your page name, please replace it with your page machine_name

अधिक झुकें: मार्ग का नाम कैसे तैयार करें

@ 4k4 टिप्पणी के बाद, आप URL के साथ कस्टम राउटर पर भी पुनर्निर्देशित कर सकते हैं

बस उपयोग की जरूरत है $form_state->setRedirectUrl($url)


यह उत्तर थोड़ा बंद है, क्योंकि आपको दृश्य के लिए सही रूनामनेम मिल रहा है, इसलिए उस रूटेनाम से URL ऑब्जेक्ट बनाने की कोई आवश्यकता नहीं है। आप सीधे रूनाम का उपयोग करने में सक्षम होना चाहिए: $form_state->setRedirect('view.VIEW_MACHINE_NAME.PAGE_MACHINENAME');
kbrinner

5

मापदंडों के अनुसार arg_X, fe का उपयोग करके संदर्भ फ़िल्टर का उपयोग करने के लिए।

$url = Url::fromRoute('view.team.page_1', ['arg_0' => 1234]);

3

की Webprofiler devel मॉड्यूल देना किसी भी पृष्ठ के मार्ग देखते हैं।

यह पृष्ठ पर किए गए DB प्रश्नों की संख्या और कई अन्य विशेषताओं के अतिरिक्त अनुरोध समय को भी प्रदर्शित करता है।

यह Drupal 7 और 8 के लिए उपलब्ध है।


2

सरल उदाहरण: यह काम करेगा :)

use Drupal\Core\Url;
$form_state->setRedirect('view.VIEW_MACHINE_NAME.PAGE_MACHINENAME'); // view.my_view.page_1

Drupal \ Core \ Url का उपयोग करने की आवश्यकता नहीं है - आप सही तरीके से मार्ग का उपयोग कर रहे हैं ताकि URL वर्ग की आवश्यकता न हो।
kbrinner

1

डुरपाल 8 के लिए आप अपने रीडायरेक्ट मापदंडों को प्राप्त करने के लिए "राउटर" डेटाबेस तालिका में देख सकते हैं।

"नाम" कॉलम में संबंधित मान देखें और पथ कॉलम के खिलाफ तुलना करें।

$from_state->setRedirect('YOUR_DB_VALUE_HERE'); 
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.