バージョン選択

フォーラム

メニュー

オンライン状況

41 人のユーザが現在オンラインです。 (30 人のユーザが フォーラム を参照しています。)
登録ユーザ: 1
ゲスト: 40
kbsw もっと...

サイト内検索

質問 > フロント機能 > ご注文手続き画面に新たにラジオボタン項目を追加したい

フロント機能

新規スレッドを追加する

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
gwkozaki
投稿日時: 2019/11/28 10:38
対応状況: −−−
常連
登録日: 2019/7/30
居住地: 日本
投稿: 53
Re: ご注文手続き画面に新たにラジオボタン項目を追加したい
またまたご返答遅くなり申し訳ございません!

skip_add_form周りを調整し、動くようにするのに手間取ってしまいましたが、解決いたしました!
ご助力いただいた umebius 様、大変お世話になりました。感謝いたします。

解決方法を以下に記述いたします。
上記のOrderTypeExtensionを以下のように変更することで解決いたしました。

OrderTypeExtension.php
<?php

namespace Customize\Form\Extension\Shopping;

use Eccube\Entity\Order;
use Eccube\Form\Type\Shopping\OrderType;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\Form\AbstractTypeExtension;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Validator\Constraints as Assert;
use Customize\Form\Type\Master\ExampleType;

class OrderTypeExtension extends AbstractTypeExtension
{
    /**
     * {@inheritdoc}
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        //☆追加した部分
        if ($options['skip_add_form']) {
            return;
        }
        //追加した部分 END

        $builder->add('example_id', ExampleType::class, [
            'label' => 'テストです',
            'required' => true,
            'expanded' => true,
            'multiple' => false,
            'constraints' => [
                new Assert\NotBlank(),
            ],
        ]);
    }

    /**
     * {@inheritdoc}
     */
    public function getExtendedType()
    {
        return OrderType::class;
    }
}

こちら、OrderTypeのbuildFormメソッド内にも記述があったため、OrderTypeを拡張したOrderTypeExtensionには記述の必要はないように思っていましたが、必要なようですね。

問題は解決となりましたが、解決にあたり疑問に思ったことが1点あったため解る方がいらっしゃいましたらご教授いただきたいです。

【質問】
1. TypeのExtensionの拡張の仕組み
 OrderTypeExtension側でbuildFormを拡張していますが、OrderTypeのbuildForm内にある以下の記述が、OrderTypeExtensionで追加したフォームに適用されなかったということは、Extensionはその拡張しているフォームのTypeとは完全に別物として呼ばれているということなのでしょうか。
 
if ($options['skip_add_form']) {
    return;
}
フラット表示 前のトピック | 次のトピック


題名 投稿者 日時
   ご注文手続き画面に新たにラジオボタン項目を追加したい gwkozaki 2019/11/12 15:31
     Re: ご注文手続き画面に新たにラジオボタン項目を追加したい umebius 2019/11/12 23:59
       Re: ご注文手続き画面に新たにラジオボタン項目を追加したい gwkozaki 2019/11/13 10:48
       Re: ご注文手続き画面に新たにラジオボタン項目を追加したい gwkozaki 2019/11/14 14:55
         Re: ご注文手続き画面に新たにラジオボタン項目を追加したい umebius 2019/11/16 22:54
           Re: ご注文手続き画面に新たにラジオボタン項目を追加したい gwkozaki 2019/11/18 9:24
         » Re: ご注文手続き画面に新たにラジオボタン項目を追加したい gwkozaki 2019/11/28 10:38
             Re: ご注文手続き画面に新たにラジオボタン項目を追加したい umebius 2019/11/28 10:52
               Re: ご注文手続き画面に新たにラジオボタン項目を追加したい gwkozaki 2019/11/28 16:01
                 Re: ご注文手続き画面に新たにラジオボタン項目を追加したい umebius 2019/11/28 18:59
                   Re: ご注文手続き画面に新たにラジオボタン項目を追加したい gwkozaki 2019/11/29 9:57
                     Re: ご注文手続き画面に新たにラジオボタン項目を追加したい umebius 2019/11/29 14:24
                     Re: ご注文手続き画面に新たにラジオボタン項目を追加したい gwkozaki 2021/7/9 17:10

 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,835名です
総投稿数は109,984件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1291
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.