如何在Twig中访问JSON数据里的课程编号?
获取Twig循环中的键值生成超链接
没问题!你只需要调整Twig里的for循环语法,就能同时获取课程的编号(也就是lessons对象里的键)和对应的课程数据了。
先回顾下你提供的JSON数据:
[ { "name":"unit 1", "lessons":{ "1":{ "name":"lesson 1", "content":"......." }, "2":{ "name":"lesson 2", "content":"......." } } } ]
你原来的Twig代码只能遍历lessons里的课程对象,但没拿到键值:
{% for unit in units %} {{ unit.name }} {% for lesson in unit.lessons %} {{ lesson.name }} {% endfor %} {% endfor %}
修改方案
Twig的for循环支持同时遍历键和值,语法是{% for key, value in 数组/对象 %}。把内层循环改成下面这样,就能拿到课程编号(lesson_id)了:
{% for unit in units %} {{ unit.name }} {% for lesson_id, lesson in unit.lessons %} {# 用lesson_id生成超链接 #} <a href="/path/to/lesson/{{ lesson_id }}">{{ lesson.name }}</a> {% endfor %} {% endfor %}
解释
lesson_id就是你要的课程编号(也就是JSON里lessons对象的键:1、2...)- 把
lesson_id插入到你的链接URL中,比如/path/to/lesson/{{ lesson_id }},就能生成指向对应课程内容的超链接了
内容的提问来源于stack exchange,提问作者Behiry
相关产品推荐
相关产品推荐

