Încerc să creez o mână de vizualizări cu un afișaj REST Export. Au căi setate în spatele „api/.../.../.../%node” unde %node va fi un ID trimis la cererea de upcast.Vizualizarea de bază are un filtru contextual al Content ID (exclus), apoi „are orice termen” din acest nod.
Cu toate acestea, în filtrul contextual pentru „IDul termenului taxonomiei din URL” cu „Încărcați termenii din pagina nodului”:
if (($node = $this->routeMatch->getParameter('nod')) && $node instanță a NodeInterfață) {
$entitate = $nod;
}
Această verificare eșuează și, prin urmare, termenii nodurilor nu sunt verificați.
Am nevoie de un parametru personalizat în acest scop pentru a spune sistemului ce să caute? M-am gândit că atâta timp cât ID-ul este un nod, upcast-ul va avea loc, dar nu este.
Iată ce vede xdebug în ViewPageController pentru parametrii și argumentele rutei:
7611 este ID-ul nodului, ce parte a procesului ar trebui sau ar trebui, de obicei, să transfere acest lucru la un obiect Node?
Dacă fac asta în argumentul Views TID, desigur, atunci am un Nod:
// Încarcă argumentul implicit de la nod.
if (!empty($this->options['nod'])) {
// Verificați doar dacă a putut fi detectat un nod.
if (($node = $this->routeMatch->getParameter('nod')) && $node instanță a NodeInterfață) {
$entitate = $nod;
}
if (($nod = $this->routeMatch->getParameter('nod')) && !empty($node) && !($node instanceof NodeInterface)) {
$entity = \Drupal::entityTypeManager()->getStorage('node')->load($node);
}
}
Editare: posibil legat de: https://www.drupal.org/project/drupal/issues/2528166