Twig Array转换为字符串

Chr*_*s98 16 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',
);
Run Code Online (Sandbox Code Playgroud)

然后通过twig,我在插入之前添加了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>
Run Code Online (Sandbox Code Playgroud)

但是我得到了:

Errno [8]在832行的F:\ localhost\www\twig\include\lib\Twig\Extension\Core.php中进行字符串转换

删除此行时,它已修复,但不显示:

{{ [info]|join(' | ') }}
Run Code Online (Sandbox Code Playgroud)

有什么想法我怎么能正确破坏这个?

**更新**

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

JL *_*L M 38

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

{{ info|join(', ') }}
Run Code Online (Sandbox Code Playgroud)

显示您的信息数组.

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

  • @Delphine如果你想加入一个关联数组的键,你可以先通过`keys`过滤器传递数组,即`{{info | 钥匙| join(',')}}` (4认同)

dec*_*eze 12

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

{% for status in status_info %}
    <a href="{{ status.link }}" title="{{ status.title }}">{{ status.display }}</a>
    {% if not loop.last %}|{% endif %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)


Dev*_*per 11

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

    {{ 数组|json_encode(constant('JSON_PRETTY_PRINT')) }} 
    

  • 请进一步解释一下 - 你的代码是做什么的?请记住,其他人应该能够从该代码中学习 (3认同)