バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

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

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
ゲスト
投稿日時: 2019/10/2 17:06
対応状況: −−−
商品管理>商品登録(商品規格登録)への項目追加
[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
居住地:
投稿: 3217
Re: 商品管理>商品登録(商品規格登録)への項目追加
商品規格登録画面のみに項目を追加したいのであれば
2.の方法が良いのではないでしょうか?

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

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


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

ゲスト
投稿日時: 2019/10/7 17:16
対応状況: −−−
Re: 商品管理>商品登録(商品規格登録)への項目追加
ご返信ありがとうございました。

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


 



ログイン


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

統計情報

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

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2311
5
umebius
2085
6
yuh
1819
7
h_tanaka
1637
8
red
1569
9
mcontact
1275
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.