プロジェクトのニーズに応じて、いくつかのフォームフィールドデータをレンダリングする前に変更する必要があります。これを行うには、フォーム要素を繰り返し処理し、必要な値を動的に変更します。多次元配列の単一オブジェクトの値を小枝テンプレートで設定する
問題は、値を変更できないということです。私はこのエラーを得た:
Unexpected token "punctuation" of value "." ("end of statement block" expected).
私は値を変更するには、コードのこの部分を使用しますが、私は上記のエラーました:
{% set arr = arr|merge({'element': 'value'}) %}
は問題がどこにあるか誰かが知っていますか?
これは私が使用したコードです。
小枝のテンプレートコード(私が使用したコード例)
<ul>
{% dump (edit_form) %}
{% for element in edit_form.children %}
{% dump (element.vars) %}
{% set element.vars = element.vars|merge({'name': 'My title (just for testing purpose)'}) %}
<li>{{ element.vars.name }}</li>
{% endfor %}
</ul>
Formオブジェクト:
FormView {#637 ▼
+vars: array:24 [▶]
+parent: null
+children: array:4 [▼
"title" => FormView {#699 ▼
+vars: array:24 [▼
"value" => "le title"
"attr" => []
"form" => FormView {#699}
"id" => "adminbundle_intro_title"
"name" => "title"
"full_name" => "adminbundle_intro[title]"
"disabled" => false
"label" => null
"label_format" => "admin.intro.form.%name%"
"multipart" => false
"block_prefixes" => array:3 [▶]
"unique_block_prefix" => "_adminbundle_intro_title"
"translation_domain" => null
"cache_key" => "_adminbundle_intro_title_text"
"errors" => FormErrorIterator {#696 ▶}
"valid" => true
"data" => "le title"
"required" => true
"size" => null
"label_attr" => []
"compound" => false
"method" => "POST"
"action" => ""
"submitted" => false
]
+parent: FormView {#637}
+children: []
-rendered: false
}
"content" => FormView {#698 ▶}
"isEnabled" => FormView {#702 ▶}
"_token" => FormView {#711 ▶}
]
-rendered: false
}
を小枝する拡張機能を追加あなたは小枝の内部配列のオブジェクト/インデックスのプロパティを割り当てることはできません。オブジェクト/配列全体をすべてのプロパティ/インデックスとマージする必要があります – DarkBee
@DarkBee再生していただきありがとうございます。私は配列全体を変更する必要があることを認識しています。問題は、この配列の1つまたは2つの要素だけを変更する必要があることです。それらのすべてではありません。そして、私はそれを達成する方法がわかりません。 – user2496520