Score:0

ส่งอาร์เรย์ PHP ไปยัง Twig หรือไม่

ธง ph

ฉันต้องการที่จะเข้าถึงอาร์เรย์ในเทมเพลต Twig ของฉันที่สร้างขึ้นใน PHP แต่มักจะว่างเปล่า ฉันพลาดอะไรไปหรือเปล่า

mytheme.theme

ฟังก์ชัน mytheme_preprocess_page (อาร์เรย์ &$ตัวแปร) {
  $ตัวแปร['myvar'] = 'foo';
}

page.html.twig

{{ มายวาร์ }}

ใช้งานได้ตามที่คาดไว้ แต่ถ้าฉันส่งอาร์เรย์ สิ่งนี้จะไม่ทำงาน:

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

เพียงแค่ไม่มีอะไรออกมา

Score:1
ธง us

หากต้องการพิมพ์รายการทั้งหมดที่อยู่ในอาร์เรย์นั้นโดยไม่ถือว่ามีกี่รายการ คุณสามารถใช้รหัสต่อไปนี้

{% สำหรับคีย์ var ใน myvar %}
  {{ มายวาร์[คีย์] }}
{% สิ้นสุดสำหรับ %}  

มิฉะนั้น คุณสามารถใช้รหัสต่อไปนี้

{{ มายวาร์[0] }} {{ มายวาร์[1] }}
Score:1
ธง cn

มีสองคำตอบที่เป็นไปได้ขึ้นอยู่กับสิ่งที่คุณพยายามบรรลุ คุณสามารถวนซ้ำอาร์เรย์ใน Twig ได้เหมือนในภาษาโปรแกรมใดๆ ดูคำตอบอื่น

เฉพาะสำหรับเอ็นจิ้นเทมเพลตของ Drupal คือถ้าคุณต้องการให้ Twig แสดงผลอาร์เรย์แบบวนซ้ำ จะต้องเป็นอาร์เรย์ที่เรนเดอร์ได้ ซึ่งหมายความว่าแต่ละองค์ประกอบที่ไม่มีลูกต้องเป็นองค์ประกอบการแสดงผล (#markup, #plain_text, #type หรือ #theme):

$ตัวแปร['myvar'] = [
  0 => ['#plain_text' => 'foo'],
  1 => ['#plain_text' => 'บาร์'],
];

แล้ว

{{ มายวาร์ }}

แสดงผลอาร์เรย์ทั้งหมด

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

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา