Twig Array转换为字符串

时间:2015-09-17 15:09:09

标签: php arrays string for-loop twig

这可能相对容易,但我对树枝很新,我感到沮丧。

我正在调整此答案中的代码:https://stackoverflow.com/a/24058447

该数组是通过以下格式在PHP中创建的:

$link[] = array(
       'link' => 'http://example.org',
       'title' => 'Link Title',
       'display' => 'Text to display',
);

然后通过树枝,我会在爆炸之前添加html:

    <ul class="conr">
        <li><span>{{ lang_common['Topic searches'] }} 
        {% set info = [] %}
        {% for status in status_info %}
            {% set info = info|merge(['<a href="{{ status[\'link\'] }}" title="{{ status[\'title\'] }}">{{ status[\'display\'] }}</a>']) %}
        {% endfor %}

        {{ [info]|join(' | ') }}
    </ul>

但我得到了:

  

Errno [8]数组转换为字符串   第832行的F:\ localhost \ www \ twig \ include \ lib \ Twig \ Extension \ Core.php

我删除此行时已修复,但未显示:

{{ [info]|join(' | ') }}

我有什么想法可以正确地破坏这个吗?

**更新**

使用Twig的转储功能,它什么都不返回。它似乎甚至没有首先将它加载到阵列中。如何将信息加载到新数组中。

3 个答案:

答案 0 :(得分:28)

info是一个数组,所以你应该简单写一下

UmbracoContext.Current.Security.CurrentUser

显示您的信息数组。

[info]是一个包含一个值的数组:数组信息。

答案 1 :(得分:9)

你不应该真正在Twig模板中构建复杂的数据结构。您可以用更加惯用和可读的方式实现所需的结果:

{% for status in status_info %}
    <a href="{{ status.link }}" title="{{ status.title }}">{{ status.display }}</a>
    {% if not loop.last %}|{% endif %}
{% endfor %}

答案 2 :(得分:1)

您可以使用json_encode将数组序列化为strig,然后显示出漂亮的效果-在树枝中构建

    {{ array|json_encode(constant('JSON_PRETTY_PRINT')) }}