Я пытаюсь создать несколько представлений с отображением REST Export. У них есть пути, установленные после 'api/.../.../.../%node', где %node будет идентификатором, отправленным в запрос для повышения.Базовое представление имеет контекстный фильтр Content ID (исключено), а затем «имеет любой термин» из этого узла.
Однако в контекстном фильтре для «Идентификатор термина таксономии из URL» с «Загрузить термины со страницы узла»:
if (($node = $this->routeMatch->getParameter('node')) && $node instanceof NodeInterface) {
$сущность = $узел;
}
Эта проверка завершается неудачно, и, таким образом, термины узлов не проверяются.
Нужен ли для этой цели настраиваемый параметр, чтобы указать системе, что искать? Я полагал, что пока идентификатор является узлом, восходящее преобразование все равно будет происходить, но это не так.
Вот что xdebug видит в ViewPageController для параметров маршрута и аргументов:
7611 — это идентификатор узла, какая часть процесса должна или обычно будет преобразовывать его в объект узла?
Если я сделаю это в аргументе Views TID, конечно, тогда у меня есть Node:
// Загрузить аргумент по умолчанию из узла.
если (!пусто($this->options['узел'])) {
// Просто проверяем, удалось ли обнаружить узел.
if (($node = $this->routeMatch->getParameter('node')) && $node instanceof NodeInterface) {
$сущность = $узел;
}
if (($node = $this->routeMatch->getParameter('node')) && !empty($node) && !($node instanceof NodeInterface)) {
$entity = \Drupal::entityTypeManager()->getStorage('node')->load($node);
}
}
Изменить: возможно, связано: https://www.drupal.org/project/drupal/issues/2528166