Puncte:1

Vizualizare cu o cale api/VERSION/foo/bar/%node - %node nu este transferat la un obiect Node

drapel in

Î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:

introduceți descrierea imaginii aici

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

4uk4 avatar
drapel cn
Ați putea încerca să construiți o rută standard de entitate cu upcasting, Views reciclează rutele existente care ar trebui să păstreze upcasting-ul.
Kevin avatar
drapel in
Cum ar funcționa? Fac o definiție de rută goală, apoi reutilizam acea cale în Vizualizări?
4uk4 avatar
drapel cn
Da, știu că asta ar fi doar o soluție.În caz contrar, nu putem face nimic aici, ați găsit deja problema care trebuie remediată.
Kevin avatar
drapel in
Văd - nu știam că poți face asta.
sonfd avatar
drapel in
@4uk4 - este aceasta o caracteristică reală? Este ceva care ar putea fi „remediat” mai târziu?
sonfd avatar
drapel in
Ați putea modifica traseul vizualizării pentru a-i spune să ridice parametrul? https://drupal.stackexchange.com/questions/81362/how-do-i-alter-the-route-defined-by-another-module

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.