Bir görünüm sayfasının rota adı nasıl alınır?


16

Özel gönderme işleyicimde bir görünüm sayfası URL'sine yönlendirmek istiyorum, görünüm adımın takım olduğunu ve yolunun olduğunu varsayalım /admin/team, kullanmalıyım $from_state->setRedirect('route');ama $from_state->setRedirect('/admin/team');Hata ile karşılaştığımda, Görünüm yolu adını nasıl alabilirim?


Statik YAML menü yapılandırması için de bu gereklidir.
vijaycs85

1
Doğrudan yanıt değil, ancak başka bir özel modülde özel bir görünüme bağlantılar için aynı soru vardı, bu yüzden configration dosya menüsünde: MODULE.links.menu.yml route_name: view.YOUR_CUSTOM_MODULE_CONTAINS_CUSTOM_CONTENT_TYPE.page_1page_1 sayfa görüntüleme modunun adı ise rota seçeneğiyle bir düğüm oluşturun .
Jean-Luc Barat

Yanıtlar:


39

Görünüm için doğru rutin adı view.VIEW_MACHINE_NAME.PAGE_MACHINENAME(başka bir deyişle "view.$view_id.$display_id"). takip etmek gibi bir şey dene

use \Drupal\Core\Url;

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

ve davanız için

$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

Daha fazla yalın: Rota adı nasıl formüle edilir

@ 4k4 yorumundan sonra, URL ile formu özel yönlendiriciye yönlendirebilirsiniz

sadece kullanmana ihtiyacım var $form_state->setRedirectUrl($url)


Bu yanıt, görünüm için doğru rutin adını aldığınız için biraz kapalıdır, bu nedenle bu rutin adından bir URL nesnesi oluşturmanıza gerek yoktur. Doğrudan rutin adını kullanabilmelisiniz:$form_state->setRedirect('view.VIEW_MACHINE_NAME.PAGE_MACHINENAME');
kbrinner

5

Görünümler bağlamsal filtreleri parametre olarak kullanmak için arg_X, fe kullanın.

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

3

Devel modülünün Web profili oluşturucusu, herhangi bir sayfanın rotasını görmenizi sağlar.

Ayrıca, sayfada yapılan DB sorgularının sayısını ve diğer birçok özelliğe ek olarak istek süresini de görüntüler.

Drupal 7 ve 8 için kullanılabilir.


2

Basit örnek: Çalışacak :)

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

Drupal \ Core \ Url kullanmaya gerek yok - URL sınıfına ihtiyaç duyulmaması için rotayı doğru kullanıyorsunuz.
kbrinner

1

Durpal 8 için yönlendirme parametrelerinizi almak için de "yönlendirici" veritabanı tablosuna bakabilirsiniz.

"Ad" sütununda karşılık gelen değeri bulun ve yol sütunuyla karşılaştırın.

$from_state->setRedirect('YOUR_DB_VALUE_HERE'); 
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.