Puncte:0

Treceți o matrice PHP către Twig?

drapel ph

Vreau să pot accesa o matrice din șablonul meu Twig care este construit în PHP, dar apare întotdeauna necompletat, îmi lipsește ceva?

mytheme.theme

funcția mytheme_preprocess_page(matrice &$variabile) {
  $variables['myvar'] = 'foo';
}

page.html.creugă

{{ myvar }}

funcționează conform așteptărilor, dar dacă trec o matrice, aceasta nu funcționează:

$variables['myvar'] = ['foo', 'bar'];

doar nu scoate nimic

Puncte:1
drapel cn

Există două răspunsuri posibile, în funcție de ceea ce încerci să obții. Puteți trece peste matrice în Twig ca în orice limbaj de programare, vedeți celălalt răspuns.

Specific motorului de șabloane Drupal este că, dacă doriți ca Twig să redea o matrice recursiv, trebuie să fie o matrice care poate fi redată. Aceasta înseamnă că fiecare element care nu are copii trebuie să fie un element de randare (#markup, #plain_text, #type sau #theme):

$variables['myvar'] = [
  0 => ['#plain_text' => 'foo'],
  1 => ['#plain_text' => 'bară'],
];

Atunci

{{ myvar }}

redă întreaga matrice.

Vedea https://www.drupal.org/docs/drupal-apis/render-api/render-arrays.

Puncte:1
drapel us

Pentru a tipări toate elementele conținute în acea matrice fără a presupune câte articole conține, puteți utiliza următorul cod.

{% pentru cheie, var în myvar %}
  {{ myvar[key] }}
{% endfor %}  

În caz contrar, puteți utiliza pur și simplu următorul cod.

{{ myvar[0] }} {{ myvar[1] }}

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.