php - Twig 对 0 个结果、1 个结果和多个结果使用特定值

标签 php symfony twig

在 Symfony2 中处理文章模块时,我必须显示阅读了多少次。为了使“句子”在语法上正确,我使用了下面的代码。

这很明显,但令我困扰的是我找不到更短、更简洁的方法。 是否有类似 article.getReads|length|displayresult('No results', '%d result', '%d results) 的东西可用,还是我必须自己做?

{% if article.getReads|length == 0 %}Be the first one to read this!
{% else %}
  {{ article.getReads|length|number_format(0, ',', '.') }} 
  read{% if article.getReads|length != 1 %}s{% endif %}
{% endif %}

最佳答案

您可以按照描述使用 symfony2 复数翻译组件 here .

例如,您可以声明一个文件:

#src / Acme / DemoBundle / Resources / translations / messages.en.xliff

            <trans-unit id="11">
                <source>article.read</source>
                <target>{0} No results|{1} one result|[2,Inf] results</target>
            </trans-unit>

广告在 Twig 模板中使用如下:

{{ 'article.read'|transchoice(article.getReads|length) }}

希望对你有帮助

关于php - Twig 对 0 个结果、1 个结果和多个结果使用特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31276351/

相关文章:

php - PDO 准备好的语句和数组中的 bindValues

php - 使用 cURL 将外部文件保存到我的服务器

php - 如何使用 Doctrine QueryBuilder 选择所有列?

forms - Symfony2 form_label 原始

php - Opencart 3.x 如何在菜单中手动添加第 4 级类别项目

php - 使用 PDO 从 MySQL 表中每页选择并显示 N=50 条记录

php - 如何在 laravel 4 中设置表单输入所需的属性

model-view-controller - Symfony 2 : Dependency injection (DI) of Controllers

php - 如何创建可重用的 Twig 组件

symfony - 如何在 Symfony2 中设置 Twig 模板的默认日期格式?