Symfony2 Twig 获取子实体的总计数

2023-12-05

存在以下实体:农场、谷仓和动物。一个农场可以有很多谷仓,一个谷仓可以有很多动物。

在 TWIG 模板中显示农场时,还应显示动物的数量。

做这个的最好方式是什么?

我创建了一个 TWIG 扩展,它允许我轻松显示谷仓的数量。

public function totalFieldFilter($data, $getField='getTotal') {
    $total = count($data->$getField());
    return $total;
}

在我的模板中,我将使用 {{ farm|totalField('getBarns') }},我可以轻松扩展它以编写另一个自定义函数,如下所示:

public function totalFieldFilter($farm) {
    $total = 0;
    foreach($farm->getBarns() AS $barn) {
        $total += count($barn->getAniamls());
    }
    return $total;
}

虽然这可行,但有没有更好的方法并且可以使其更通用?如果我想计算动物的腿数怎么办?或者一个谷仓有多少扇门,我每次都必须编写一个自定义的 TWIG 扩展。


使用实体访问器:

{% for farm in farms %}

  {{ farm.name }}

  {% set barns = farm.getBarns() %}

  Barns count = {{ barns|length }}

  {% for barn in barns %}

    {% set animals = barn.getAnimals() %}

    {{ barn.name }} animals count : {{ animals|length }}

  {% endfor %}

{% endfor %}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Symfony2 Twig 获取子实体的总计数 的相关文章

随机推荐

  • C 按值传递数组与按引用传递数组

    大家好 我一直在学习 C 我遇到了这个例子 但我并没有真正找到背后的逻辑 这不是关于代码的技术问题 我更多地寻找解释 这是代码 include
  • 具有预览功能的 Maven Exec 插件

    使用以下命令可以轻松编译 Java 源代码 enable preview
  • 保存/导出 ggplot2 数据,而不是绘图本身

    有没有办法保存或导出用于绘图的 ggplot 数据 我指的不是图像本身 而是存储在全局环境中的信息 例如 Data lt data frame X sample 1 10 Y sample c yes no 10 replace TRUE
  • 将条目号附加到 FileSystemWatcher 输出

    Okay 在这里可能会被视为非常成熟的帖子 我不太擅长 VB 或程序员 但我处于 边做边学 的动力中 我正在开发一个应用程序 它为用户创建目录 并使用 FileSystemWatcher 跟踪创建的目录以及对这些目录的更改 到目前为止 我已
  • 我的 goto 重定向不起作用,但可以与 echo 一起使用

    echo off start1 set p input action for f tokens 1 2 delims a in input do goto a b gt nul 2 gt 1 goto start1 如果我输入 echo y
  • 如何使用python从csv文件中提取最小值和最大值

    我有一个 python 脚本 它从 csv 文件读取并将请求的列附加到 2 个空列表中 之后我需要提取提取的列的最小值和最大值 我写了这段代码 但它似乎不起作用 因为结果是空的 code import csv mydelimeter csv
  • adChar 和 adParamInput 无法识别

    我正在做 sql 到 oracle 的迁移 我必须更改很多旧的 vbscript 代码 这是我在 Oracle 中使用的新代码的示例 这就是引起问题的代码 cmd CreateParameter v CdEnt adChar adParam
  • 在 B 列中获取 A 列中“不在字典中”的单词

    我如何创建一个宏来检查 A 列的每个单元格 找到不在定义的字典中的单词 并将它们写入下一个单元格 用空格分隔 在下图中 您可以看到该宏完成后的工作表示例 完整的想法是从数据库中获取一个 varchar 列并使用 Excel 对其进行拼写检查
  • 模板和继承的“未在此范围内声明”错误[重复]

    这个问题在这里已经有答案了 这是重现我的问题的代码示例 template
  • 在 Windows Phone 8 中选择联系人

    我正在尝试将基本联系人列表添加到我的应用程序中 到目前为止 该应用程序查询了联系人存储并将所有内容显示在列表中 我需要的是一个数据结构 其中包含用户从列表中选择的每个联系人的姓名和号码 我很想看看你的想法 我确信这将是我错过的一些简单的事情
  • 如何在 Flutter 中从画布中裁剪圆形(或正方形或六边形)区域

    我想裁剪一个矩形图像文件并将其制成圆形或方形或六角形将其保存为本地图像文件 我有一个位图 我想从该位图中裁剪圆形或六边形区域 圆圈外的所有像素都应该是透明的 我怎样才能做到这一点 我在中找到了类似的问题android平台 但无法找到真正帮助
  • 从 MySQL 数据库在 Google Maps API v3 上绘制多个多边形

    因此 我尝试通过 MySQL 表中的多边形空间数据将多个多边形绘制到谷歌地图上 我有一个 php 脚本 它根据我的表数据输出以下 XML
  • 链接到另一个页面的按钮(特定部分)

    我正在尝试创建一个按钮 将我重定向到另一个页面上的特定部分 我的索引页上有此代码 a href BruinBier class btn Bekijken a 如果我按下上面的按钮 它应该将我重定向到 Bruin bier 部分下的网上商店页
  • 从 C 优雅地调用 C++

    我们用简单的方式开发一些项目C C99 但是 我们有一个库作为源代码 数学库 C 我们需要这个库 所以我想问一下 集成这个源代码的最优雅的方式是什么 尺寸之间的比例C and C is 20 1所以搬到C 不是这个选项 我们应该使用静态库吗
  • Visual Studio 2019 - 仅强制使用 C++11 功能

    我使用 Visual Studio 2019 进行 C 开发 由于代码部署到的遗留系统的限制 我只能使用 C 11 语言功能 特别是 GCC 4 8 5 VS2019中默认的是C 14 这显然是C 11的超集 我看不到仅指定 C 11 的方
  • 仅当字符串中连续时如何删除重复项? [复制]

    这个问题在这里已经有答案了 对于一个字符串 例如 12233322155552 通过删除重复项 我可以得到 1235 但我想保留的是 1232152 仅删除连续的重复项 import re Only repeated numbers ans
  • Redux-form 6.0.0 Field 组件外访问错误

    在 Redux form v5 中 我能够从装饰表单中的任何位置访问 内联 错误 异步验证 如下所示 const fields email inside the decorated form const email this props f
  • AIR 3.5 移动项目设备 ID

    我想知道是否有人知道针对移动设备 iOS 和 Android 将数据存储在全局数据库中的最佳方法 我正在构建一个根据查询写入 检索信息的应用程序 但我需要知道返回的任何记录是否是从该设备发送的 基本上 这个想法是 如果用户提交一些信息 存储
  • 如何向用户显示时间量?

    我想将时间量从毫秒转换为人类可读的字符串 例如 3 600 000应显示为1 00 00 1小时 Java 中是否有现有的库或类可以做到这一点 从 1 5 开始有 java util concurrent TimeUnit 类 像这样使用它
  • Symfony2 Twig 获取子实体的总计数

    存在以下实体 农场 谷仓和动物 一个农场可以有很多谷仓 一个谷仓可以有很多动物 在 TWIG 模板中显示农场时 还应显示动物的数量 做这个的最好方式是什么 我创建了一个 TWIG 扩展 它允许我轻松显示谷仓的数量 public functi