PHP
Symfony
twig
EC-CUBE
symfony3

EC-CUBE3.nでフォームの値をhiddenで持たせたいとき

例えば、

入力画面 -> 確認画面 -> 完了画面

みたいな遷移の時に確認画面でフォームの値をhiddenで持たせたいときは type: hidden を付与すれば良い。

例えば入力画面で以下のようにフォームを出力してたとする。

{{ form_widget(form.phone_number) }}

確認画面では以下のように記述するとhiddenでフォームが出力される。

{{ form_widget(form.phone_number, { type : 'hidden' }) }}

入力内容を画面にテキストで表示させたいときは別で出力させるコードを記述する。
入力内容は .vars.data で参照できる。

{{ form.phone_number.vars.data }}
{{ form_widget(form.phone_number, { type : 'hidden' }) }}

うまくいかない場合はtwig内でEC-CUBEのカスタムフォームが読み込まれているか確認しよう。

{% form_theme form 'Form/form_div_layout.twig' %}

それでもうまく行かない場合は Form/form_div_layout.twig の内容を確認してみるといいかもしれない。

/src/Eccube/Resource/template/default/Form/form_div_layout.twig