Drupal 8: Как получить ноду из ссылки в ajax-запросе? (и не только)
Автор: Саша → 10.11.2021
Возникла такая проблема, когда убирал некоторые элементы на форме фильтрации для views. Форма работает через ajax и при загрузке страницы можно получить объект ноды из пути:
/** @var \Drupal\node\Entity\Node $node */ $node = \Drupal::routeMatch()->getParameter('node');
А если идёт фильтрация, то объект ноды текущего роута не получить. Поэтому будем его брать $_SERVER['HTTP_REFERER']:
if(\Drupal::request()->isXmlHttpRequest()){ $referer = \Drupal::request()->server->get('HTTP_REFERER'); $parse = parse_url($referer); /** @var \Drupal\Core\Url $url_object */ $url_object = \Drupal::service('path.validator') ->getUrlIfValid($parse['path']); $params = $url_object->getRouteParameters(); if(isset($params['node'])){ $node = \Drupal::entityTypeManager()->getStorage('node')->load($params['node']); } }
Раздел:
Оставить комментарий