gpt4 book ai didi

php - Twig:在循环内设置变量,在循环外使用它

转载 作者:可可西里 更新时间:2023-10-31 22:06:40 24 4
gpt4 key购买 nike

我正在尝试使用 set 定义 driverid,作为 for driver in assigned.driver 循环中的 var 供以后使用。看看下面我在做什么:

{% for key, assigned in pgn %}
<tr id="device-{{ assigned.id }}">
<td>{{ assigned.imei }}</td>
<td>{{ assigned.description }}</td>
<td>
{% for driver in assigned.driver %}
{{ driver.driver.id }} {# check if driver.driver.id has values testing purposes - delete me #}
{% set driverid = driver.driver.id %}

{% if driver.driver.name != "" %}
{% if driver.driver.name %}
{{ driver.driver.name }}
{% else %}
-
{% endif %}
{% endif %}
{% endfor %}
</td>
<td>
<button class="btn btn-xs btn-default"
onclick="openAlert({{ assigned.id }}, {{ driverid }}, 'unlink')"
data-original-title="{{ "devices.actions.unlink"|trans }}"
title="{{ "devices.actions.unlink"|trans }}">
<i class="fa fa-times"></i>
</button>
<button class="btn btn-xs btn-default"
onclick="openAlert({{ assigned.id }}, null, 'delete')"
data-original-title="{{ "button.delete"|trans }}"
title="{{ "button.delete"|trans }}">
<i class="fa fa-times"></i>
</button>
</td>
</tr>
{% endfor %}

但是我得到这个错误:

Variable "driverid" does not exist in /var/www/html/src/Device/DeviceBundle/Resources/views/List/listDevices.html.twig at line 74

将 var 设置为稍后在 openAlert() 调用中使用的正确方法是什么?或者换句话说,我如何获取 driver.driver.id 并将其作为参数传递给 openAlert() 函数?

最佳答案

正如他们所说 here ,这不是一个错误,而是一个特性:在循环内定义的变量被限定在该循环内。

不过不用担心,你可以在循环外定义var并在循环内赋值,像这样:

{% set driverid = '' %} {# <-- add this line: default empty value #}

{% for driver in assigned.driver %}
...
{% set driverid = driver.driver.id %}

这应该足以让它工作。

关于php - Twig:在循环内设置变量,在循环外使用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24758534/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com