我有以下代码:
{% set aSessionKeys = app.session.get('aBasket')|keys %}
onkeyup="calculatePrice({{ product['product_price'] }},{{ product['product_id'] }},{{ aSessionKeys }})
我有一个错误:
Notice: Array to string conversion
你能帮帮我吗? Thx提前。那么存在一个传递这个数组的解决方案吗?
我喜欢这个:
{% set aKeys = aSessionKeys|join(',') %}
{{ dump(aKeys) }}
它显示很好,但如果我过去jquery:
calculatePrice({{ product['product_price'] }},{{ product['product_id'] }},{{ aKeys }})
当我在js中使用methode calculatePrice():
function calculatePrice(price, product_id, aKeys) {
console.log(aKeys);
var x = document.getElementById("product_quantity_"+product_id);
var total_price = price * x.value;
$("#total_price_"+product_id).html(total_price+" <small> MDL</small>");
sum = 0;
$("#total_price_basket").html();
}
它只显示aKeys的第一个值
答案 0 :(得分:0)
你有非常受欢迎的错误。您正在尝试显示阵列。但你怎么想象呢?您可以将{{ dump(aSessionKeys) }}
用于此目的或使用第一个元素:{{ aSessionKeys.0 }}
(如果它不是数组或对象)。
但是如果你想打印这个数组中的所有值,你可以运行foreach循环:
{% for element in aSessionKeys %}
{# something here #}
{{ element }}
{# something here #}
{% endfor %}
答案 1 :(得分:0)
显然(当你使用|keys
过滤器时)aSessionKeys
包含一个数组,并且在模板中使用{{ aSessionKeys }}
Twig会尝试将数组输出为字符串,这不会工作(或者至少不是你想要的)。
要将数组转换为字符串,您应该使用Twig的join()
过滤器,它将使用给定的分隔符字符串连接数组值。因此,如果 - 例如 - 您想使用逗号连接值,那么这将是代码:
{{ aSessionKeys|join(',) }}