如何检查责任TWIG中是否存在记录 - 表格格式的数据

时间:2017-05-30 21:36:59

标签: php twig

我有一个多维数组,其中存在一些对象而其他对象不存在。整个数据已在页面中使用。然后我打算用TWIG检查一下。 示例数据:

array:2[
  0 => Data1 {
    -id: 17
    -porodType: "1d"
    -name: "Dally promotion" 
  }
  1 => Data1 {
    -id: 34
    -porodType: "S"
    -name: "Special" 
  }    
]

如何检查是否带有porodType =" 1d"在责任中存在? 如何为此操作显示不同的消息:存在(OK)/不存在(ERROR)?

在TWIG办理登机手续时:

{% for d in Data1 %}
    {% if d.porodType == '1d' %}
        <button class="btn">OK</button>
    {% else %}
        <button class="btn"">Error</button>
    {% endif %}
{% endfor %}

此代码结果为:<button class="btn">OK</button><button class="btn">Error</button>

但我期待<button class="btn">OK</button><button class="btn">ERROR</button>

2 个答案:

答案 0 :(得分:3)

如果您只想显示一个按钮,则需要使用标记跟踪错误,因为您无法在Twig中打破循环,

{% set error = false %}
{% for d in Data1 %}
    {% if d.porodType != '1d' %}
        {% set error = true %}
    {% endif %}
{% endfor %}
{% if error %}
    <button class="btn">Error</button>
{% else %}
    <button class="btn">OK</button>
{% endif %}

答案 1 :(得分:2)

使用twig's for..if..else可能比目前接受的答案更简单:

{% for d in Data1 if d.porodType == "1.d" %}
<!-- show error button -->
{% else %}
<!-- show the okay button -->
{% endfor %}

当循环为空(没有任何迭代)时,else子句启动。

请参阅标记标记的文档:https://twig.sensiolabs.org/doc/2.x/tags/for.html