Программное перенаправление на узел/nid не перенаправляет на псевдоним URL - Drupal 8
Насколько я понимаю, модуль "Globalredirect" был объединен с модулем "Перенаправление". Таким образом, модуль перенаправления также должен перенаправлять ссылки как node/nid на свой псевдоним URL. При создании перенаправлений через интерфейс это работает отлично. Но если я программно делаю перенаправление на страницу узла/nid, она не перенаправляется на псевдоним URL.. Не уверен, что это плохое кодирование с моей стороны или функция, не реализованная в модуле.
/* @file EventSubscriber.php */
public function onRequest(GetResponseEvent $event) {
$baseUrl = $event->getRequest()->getBaseUrl();
$attr = $event->getRequest()->attributes;
if(null !== $attr && null !== $attr->get('node') && $attr->get('node')->get('type')->getString() == 'product_group' &&
$attr->get('_controller') == '\Drupal\node\Controller\NodeViewController::view') {
$node = $attr->get('node');
$references = $node->get('field_references');
$values = $references->referencedEntities();
if($values){
$nid = $values[0]->id();
$language = \Drupal::languageManager()->getCurrentLanguage()->getId();
$event->setResponse(new RedirectResponse($baseUrl. '/' . $language . '/node/' . $nid));
}
}
static function getSubscribedEvents() {
$events[KernelEvents::REQUEST][] = ['onRequest'];
return $events;
}
Я использую это код для перенаправления группы продуктов на первый указанный узел сущности, который использует автоматическую структуру URL-адресов, созданную шаблоном pathauto, но псевдоним URL-адреса не отображается после перенаправления, он показывает node/nid. Я проверил, что псевдоним URL на этой странице действительно работает, и даже добавил перенаправление с этого конкретного узла/nid на его псевдоним URL через интерфейс, но безуспешно.
Я делаю что-то не так? Работает ли это так, как задумано? Есть ли для меня более чистый/лучший способ перенаправление? Все еще довольно новичок в Drupal 8..
Используя:
Друпал 8.1.3
Перенаправление 8.x-1.0-alpha1
Патавто 8.x-1.0-alpha3