如何将数组传递给twig中的jquery

时间:2015-06-18 09:34:18

标签: symfony twig

我有以下代码:

{% 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的第一个值

2 个答案:

答案 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(',) }}