バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

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

フロント機能

新規スレッドを追加する

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
gwkozaki
投稿日時: 2019/11/28 10:38
対応状況: −−−
常連
登録日: 2019/7/30
居住地: 日本
投稿: 33
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

 



ログイン


EC-CUBEペイメント

公式ストアEC-CUBE4系デザインテンプレート続々リリース中

統計情報

総メンバー数は64,462名です
総投稿数は97,263件です

投稿数ランキング

1
seasoft
7332
2
AMUAMU
2712
3
468
2494
4
nanasess
2089
5
umebius
1650
6
yuh
1612
7
red
1411
8
h_tanaka
1029
9
fukap
907
10
tsuji
863
11
shutta
835
12
tao_s
792
13 ramrun 789
14 karin 657
15 sumida 641
16
homan
633
17 DELIGHT 571
18
patapata
502
19
flealog
485
20 tonton 437


ネットショップの壺

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

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