web-dev-qa-db-ja.com

Twig配列から文字列への変換

これはおそらく比較的簡単ですが、私は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] F:\ localhost\www\twig\include\lib\Twig\Extension\Core.phpの832行目の配列から文字列への変換

この行を削除すると修正されますが、表示されません:

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

これを適切に内破する方法はありますか?

**更新**

Twigのダンプ関数を使用すると、何も返されません。そもそも配列にロードしていないようです。新しい配列に情報を読み込むにはどうすればよいですか。

14
Chris98

Twigテンプレート内に複雑なデータ構造を構築するべきではありません。

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

infoは配列なので、簡単に書く必要があります

{{ info|join(', ') }}

情報配列を表示します。

[情報]は、1つの値を持つ配列です。配列情報です。

33
JL M

Json_encodeを使用して、配列を文字列としてシリアル化してから、pretty-build in twigを使用できます

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