バージョン選択

フォーラム

メニュー

オンライン状況

101 人のユーザが現在オンラインです。 (76 人のユーザが フォーラム を参照しています。)
登録ユーザ: 3
ゲスト: 98
be-s admik1 dl2008 もっと...

サイト内検索

質問 > 管理機能 > 商品管理>商品登録(商品規格登録)への項目追加

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
jazz4no
投稿日時: 2019/10/2 17:06
対応状況: −−−
常連
登録日: 2008/8/19
居住地:
投稿: 44
商品管理>商品登録(商品規格登録)への項目追加
[EC-CUBE] 4.0.2
[OS] CentOS 7
[PHP] PHP 7.1.30
[データベース] PostgreSQL 10.9
[WEBサーバ] Apache/2.4.6


開発ドキュメントやネット検索ではdtb_productへ追加する例は有るのですが、dtb_product_classへ追加する例を見つけることが出来なかったので質問させて頂きます。

追加する項目のフォームとしては、販売価格と同じフォーム(PriceType)を追加したいと思っています。

以下を参考にデータベースへのカラム追加は完了しております。
http://doc4.ec-cube.net/customize_entity

1、
Entityからのフォームの自動生成ではTextTypeが生成されただけなので、form_theme、type、optionなどを使って個別に指定ると推測しているのですが、type=“\Eccube\Form\Type\PriceType”とするなど、いくつか値を変えてみたのですがダメでした。


2,
FormExtensionを使った拡張では、商品登録画面は思い通りになるのですが、商品規格登録に反映されない状況です。
http://doc4.ec-cube.net/customize_formtype



namespace Customize\Form\Extension;

use Eccube\Form\Type\Admin\ProductClassType;
use Eccube\Form\Type\PriceType;
use Symfony\Component\Form\AbstractTypeExtension;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Validator\Constraints as Assert;

class ProductClassExtension extends AbstractTypeExtension
{

    /** 
     * {@inheritdoc}
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {   
        $builder
            ->add(‘hoge’, PriceType::class, [
                'label' => trans('admin.product.hoge’),
                'eccube_form_options' => [
                    'auto_render' => true,
                ],  
            ])  
            ->add(‘foo’, TextType::class, [
                'label' => trans('admin.product.foo’),
                'eccube_form_options' => [
                    'auto_render' => true,
                ],  
                'constraints' => [
                    new Assert\NotBlank(),
                ]   
            ]); 
                                                                                                                                                                                                    
    }   

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



そもそも論として、dtb_product_classに追加したカラムと連携するフォームの生成は、どういう方法で拡張するのが望ましいのでしょうか?
よろしくお願いします。
468
投稿日時: 2019/10/3 11:17
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 1860
Re: 商品管理>商品登録(商品規格登録)への項目追加
商品規格登録画面のみに項目を追加したいのであれば
2.の方法が良いのではないでしょうか?

ちなみに商品規格登録画面で利用されているFormTypeはProductClassEditType::class
になるかと思います。

ProductClassControllerのソースを確認すると
ProductClassMatrixType::classを$builderに格納しているようですが
ProductClassMatrixType内でproduct_classesフィールドはProductClassEditType::classをコレクションで登録しているようです。


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

jazz4no
投稿日時: 2019/10/7 17:16
対応状況: −−−
常連
登録日: 2008/8/19
居住地:
投稿: 44
Re: 商品管理>商品登録(商品規格登録)への項目追加
ご返信ありがとうございました。

ProductClassEditTypeのFormExtensionを作成する事で解決いたしました。
ご丁寧な説明をありがとうございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBEペイメント

ec-cube.co

統計情報

総メンバー数は51,014名です
総投稿数は93,518件です

投稿数ランキング

1
seasoft
7332
2
AMUAMU
2712
3
nanasess
1984
4
468
1860
5
yuh
1604
6
red
1353
7
umebius
1296
8
h_tanaka
924
9
fukap
907
10
tsuji
856
11
shutta
835
12 ramrun 789
13
tao_s
774
14 karin 656
15 sumida 641
16
homan
633
17 DELIGHT 571
18
patapata
502
19
flealog
483
20 tonton 436


ネットショップの壺

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

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