Puncte:1

Cum să încărcați programatic o vizualizare?

drapel om

Am creat o vizualizare pe care vreau să preiau rezultatul dintr-un modul. Pe drupal.org, cel mai recent recomandare pare a fi

$entity = \Drupal::entityTypeManager()->getStorage($entity_type)->load(1)

Deci, acesta este codul meu.

/** @var \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager */
$view = \Drupal::entityTypeManager()
  ->getStorage('view')
  ->load($view_id);
$view->getDisplay('latest_blog');

Se pare că mă apropie foarte mult - în depanare, văd proprietăți care indică clar că primesc obiectul.

Sunt pe drumul cel bun și îmi lipsește doar o bucată mică? Încărcarea unui termen de taxonomie sau a unui nod este ușoară.Dar chestia asta cu View mă încurcă și nu găsesc nimic dincolo de vechiul mod Drupal 7 de a face asta.

Les Lim avatar
drapel us
Obținerea rezultatului unei entități înseamnă probabil redarea entității. În general, *încărcarea* este folosită doar pentru a însemna *preluarea unei entități din stocarea sa*.
sea26.2 avatar
drapel om
@LesLim Nu sunt de acord... O căutare pentru asta (pe care am făcut-o, de altfel) va arăta cum să „redăm” vizualizarea. Nu asta vreau. Răspunsul folosind același context dă rezultatele la care m-aș aștepta pentru un nod. Același lucru, se pare, ar trebui să se aplice pentru o vizualizare.
Les Lim avatar
drapel us
Atunci presupun că nu sunt sigur ce vă așteptați să vedeți pe entitatea încărcată, ceea ce nu vedeți.
Puncte:3
drapel cn

Probabil doriți să încărcați a ViewExecutable:

clasa ViewExecutable

Reprezintă o viziune în ansamblu.

Un obiect care să conțină toate datele pentru a genera o vizualizare, plus funcții membre pentru a construi interogarea de vizualizare, a executa interogarea și a randa ieșirea.

$executable = $view->getExecutable();
Puncte:2
drapel om

Mulțumesc @4x4. Am săpat în jurul miezului și am găsit și asta. Codul meu de lucru care produce nodul rezultat din interogare este acesta.

  $view = \Drupal::entityTypeManager()
    ->getStorage('view')
    ->load($view_id)
    ->getExecutable();

  // Obține NID-ul din rezultatul View.
  $view->initDisplay();
  $view->setDisplay('ultimul_blog');
  $view->execute();
  $rezultat = $vizualizare->rezultat;

Cu NID-ul de la asta, putem obține cu ușurință calea - care era ceea ce aveam nevoie.

No Sssweat avatar
drapel ua
Dacă ați vrut doar rezultatul, o scurtătură [views_get_view_result](https://api.drupal.org/api/drupal/core%21modules%21views%21views.module/function/views_get_view_result/9.3.x)

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.