質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Twig

Twig は、簡潔で可読性の高いテンプレートを記述することができ、 シンプルに記述することを目的として作られた PHPテンプレートエンジンです。

EC-CUBE

EC-CUBEは、主に日本国内で開発されているECコンテンツ管理システムです。ロックオン社のECKitを元にしてオープンソース化され、商品管理・受注管理・顧客管理・売上集計などECに特化した様々な機能を備えています。

Q&A

解決済

1回答

8568閲覧

twigのif文について

oyashiro

総合スコア37

Twig

Twig は、簡潔で可読性の高いテンプレートを記述することができ、 シンプルに記述することを目的として作られた PHPテンプレートエンジンです。

EC-CUBE

EC-CUBEは、主に日本国内で開発されているECコンテンツ管理システムです。ロックオン社のECKitを元にしてオープンソース化され、商品管理・受注管理・顧客管理・売上集計などECに特化した様々な機能を備えています。

0グッド

0クリップ

投稿2017/07/24 03:06

編集2017/07/28 05:32

ECCUBE3のご注文ページにて、
支払い方法のフォームを出力している部分のTwigにて

{% for key, child in form.payment %} <li> {{ form_widget(child, {'attr': {'class': 'payment' }}) }} {% if form.payment.vars.choices[key].data.payment_image is not null %} <img src="{{ app.config.image_save_urlpath }}/{{ form.payment.vars.choices[key].data.payment_image }}"> {% endif %} </li> {% endfor %}

こう記述させており、htmlで

<li> <div class="radio"> <label class="required"><input type="radio" id="shopping_payment_5" name="shopping[payment]" required="required" class="payment" value="5" checked="checked"> クレジットカード決済</label> </div> </li> <li> <div class="radio"> <label class="required"><input type="radio" id="shopping_payment_2" name="shopping[payment]" required="required" class="payment" value="2"> 銀行振込</label> </div> </li>

というソースになります。

この時、銀行振り込みの</li>の前に説明文を加えたいのですが、
下記の追加したif文の●の変数を何にすればいいかよくわかりません。

{% for key, child in form.payment %} {% if ● == ● %} <li> {{ form_widget(child, {'attr': {'class': 'payment' }}) }} {% if form.payment.vars.choices[key].data.payment_image is not null %} <img src="{{ app.config.image_save_urlpath }}/{{ form.payment.vars.choices[key].data.payment_image }}"> <div class="shop_payment_info">振込予定日を「ご要望欄」に記載下さいませ。</div> {% endif %} </li> {% else %} <li> {{ form_widget(child, {'attr': {'class': 'payment' }}) }} {% if form.payment.vars.choices[key].data.payment_image is not null %} <img src="{{ app.config.image_save_urlpath }}/{{ form.payment.vars.choices[key].data.payment_image }}"> {% endif %} </li> {% endif %} {% endfor %} {{ form_errors(form.payment) }}

支払い方法にて、クレジット決済・銀行振込があり、
銀行振り込みの横に「振込予定日を「ご要望欄」に記載下さいませ。」という説明文をつけたいです。
ただ、forでループして出力しているので
銀行振り込みの場合、trueの処理をさせるには
どういう条件を付ければいいか変数がわかりません。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2017/07/25 04:27

どういう条件分岐なのでしょうか?日本語でも良いので書いてください。それだけでは見ている人は、もっとわかりません。
oyashiro

2017/07/28 05:27

ご指摘ありがとうございます。追記致します。
guest

回答1

0

ベストアンサー

ワンライナーで済むと思いますがいかがでしょうか。

Twig

1{% for key, child in form.payment %} 2<li> 3 {{ form_widget(child, {'attr': {'class': 'payment' }}) }}{{ child.vars.label == '銀行振込' ? '振込予定日を「ご要望欄」に記載下さいませ。' }} 4 {% if form.payment.vars.choices[key].data.payment_image is not null %} 5 <img src="{{ app.config.image_save_urlpath }}/{{ form.payment.vars.choices[key].data.payment_image }}"> 6 {% endif %} 7</li> 8{% endfor %}

または

Twig

1{% for key, child in form.payment %} 2<li> 3 {{ form_widget(child, {'attr': {'class': 'payment' }}) }}{{ key == 2 ? '振込予定日を「ご要望欄」に記載下さいませ。' }} 4 {% if form.payment.vars.choices[key].data.payment_image is not null %} 5 <img src="{{ app.config.image_save_urlpath }}/{{ form.payment.vars.choices[key].data.payment_image }}"> 6 {% endif %} 7</li> 8{% endfor %}

投稿2017/07/28 17:03

編集2017/07/28 17:08
xenbeat

総合スコア4258

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

oyashiro

2017/08/01 01:03

スッキリしたコードです。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問