twig で json オブジェクトを作成しようとしているので、ループ内に変数を設定する必要があります。何度も試みた結果、この方法を見つけましたが、レコードが 2 つしかない場合は問題ありません。レコードが 2 つ以上ある場合は、問題が発生します。
{% set data = [] %}
{% for artist in artists %}
{% if loop.first %}
{%
set data = {
id : artist.id,
text : artist.name|capitalize() ~' '~ artist.surname|capitalize()
}
%}
{% else %}
{%
set data = [data,{
id : artist.id,
text : artist.name|capitalize() ~' '~ artist.surname|capitalize()
}]
%}
{% endif %}
{% endfor %}
{% set data = {results: data} %}
{{ data|json_encode|raw }}
私が達成したいことは次のとおりです。
{results: [{id: 1, text: "bla"},{id: 2, text: "blabla"},{id: 3, text: "blablabla"}]}
代わりに私は得る:
{results:[[{id:1,text:"bla"},{id:2,text:"blabla"}],{id:3,text:"blablabla"}]}
気が狂わずに小枝の中にjsonオブジェクトを構築する方法はありますか?
私はすでにこの方法を試しました..しかし、オブジェクトを書き換え、最後の要素のみを変数に保存します:
{% set data = [] %}
{% for artist in artists %}
{%
set data = {
id : artist.id,
text : artist.name|capitalize() ~' '~ artist.surname|capitalize()
}
%}
{% endfor %}
{% set data = {results: data} %}
{{ data|json_encode|raw }}