Twig循环怎么写_SymfonyTwig循环语法【详解】

落枫君_4768

落枫君_4768

2026-05-14

244人浏览

原创

Twig 的 for 循环用于遍历数组、对象或数字范围,语法简洁且自动处理空值;支持键值对遍历、索引信息(如 loop.index)、数字范围(0..9)、条件过滤(if)及 else 分支;允许多重并列或嵌套循环,但需确保数据源独立可为空。

twig循环怎么写_symfonytwig循环语法【详解】

Twig 的 for 循环是模板中遍历数组、对象或数字范围的核心语法,写法简洁且语义清晰,不需要手动管理索引或计数器。

基础 for 循环写法

最常用的形式是遍历一个数组或集合,语法为:{% for item in items %}...{% endfor %}。其中 items 是从 PHP 控制器传入的变量(如数组或 Doctrine 查询结果),item 是当前迭代项的别名。

  • 支持直接输出: {{ item.name }} 或 {{ item }}(若为标量)
  • 自动处理空数组:若 items 为空或未定义,循环体不会执行,也不会报错
  • 必须配对闭合:漏写 {% endfor %} 会导致模板编译失败

遍历键值对与索引信息

当需要同时访问键名和值,或获取循环位置(如序号、是否首尾),Twig 提供内置变量:

  • {% for key, value in data %}{{ key }}: {{ value }}{% endfor %}
  • {% for user in users %}{{ loop.index }}. {{ user.name }}{% endfor %} → loop.index 从 1 开始计数
  • loop.first、loop.last、loop.length 等可直接在循环体内使用

数字范围与条件过滤

Twig 支持用 .. 生成连续整数序列,也允许在循环中嵌入 if 进行筛选:

Symfony Linux版
Symfony Linux版

Symfony Linux版整理 Symfony CLI 5.17.1 官方下载入口和 Symfony 框架安装配置说明。

下载
  • 生成 0 到 9:{% for i in 0..9 %}{{ i }}{% endfor %}
  • 只显示活跃用户:{% for user in users if user.active %}{{ user.name }}{% else %}No active users{% endfor %}
  • else 分支在循环无匹配项时触发(注意:仅对带 if 的循环有效)

嵌套循环与独立并列循环

多个 for 可以并列书写,互不影响;若需嵌套(如分类下展示文章),直接缩进即可:

  • 并列写法(推荐用于不同数据源):{% for goal in goals %}...{% endfor %}{% for task in tasks %}...{% endfor %}
  • 嵌套写法:{% for category in categories %}

    {{ category.name }}

    {% for post in category.posts %}

    {{ post.title }}

    {% endfor %}{% endfor %}
  • 避免逻辑耦合:不要依赖“外层循环有数据,内层才渲染”,应确保每个循环的数据源独立可为空

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

symfony

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
PHP Symfony框架
PHP Symfony框架

本专题专注于PHP主流框架Symfony的学习与应用,系统讲解路由与控制器、依赖注入、ORM数据操作、模板引擎、表单与验证、安全认证及API开发等核心内容。通过企业管理系统、内容管理平台与电商后台等实战案例,帮助学员全面掌握Symfony在企业级应用开发中的实践技能。

2025.09.11

5877

17

Vite 项目如何打包和部署
Vite 项目如何打包和部署

Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

2026.10.28

20

16

Vite 如何搭配 Vue.js
Vite 如何搭配 Vue.js

Vite搭配Vue.js专题汇集创建Vue 3项目、配置开发环境、路径别名、Vue插件、代理、多环境构建与调试的已审核文章,帮助读者完成从初始化到日常开发的配置。

2026.10.28

0

15

Vite 项目目录怎么看
Vite 项目目录怎么看

Vite项目目录专题汇集入口文件、src源码、public静态资源、路径别名、项目根目录和构建输出目录相关的已审核文章,帮助读者理解各文件夹的用途与引用方式。

2026.10.28

0

10

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

2026.10.22

120

11

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

2026.10.22

60

10

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

2026.10.22

60

15

Gradle怎么构建Java项目
Gradle怎么构建Java项目

本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。

2026.10.22

40

10

PHP时间戳漏洞修复教程
PHP时间戳漏洞修复教程

本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。

2026.10.22

60

25

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Symfony 官方文档
Symfony 官方文档

共0课时 | 0人学习

Composer手册
Composer手册

共0课时 | 0人学习

Symfony5【从0开始开发博客系统】
Symfony5【从0开始开发博客系统】

共120课时 | 15.9万人学习