バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

プラグイン > 開発について > 商品登録画面に入力フォーム追加した際のDBへのデータ反映方法について

開発について

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
Den5585
投稿日時: 2022/2/3 14:06
対応状況: −−−
新米
登録日: 2022/2/3
居住地:
投稿: 2
商品登録画面に入力フォーム追加した際のDBへのデータ反映方法について
▼テンプレート
[EC-CUBE] ECCUBE4.0

[サーバ] plesk
[OS] 使用しているOS名、バージョン
[PHP] ver.7.4.27
[データベース] MariaDB
[WEBサーバ] plesk

お世話になります。
当方プラグインの開発を行っております。作成している中でどうしてもわからない事があり質問させていただきました。

【やりたい事]
商品管理→商品登録画面に入力フォームを追加(チェックボックスのついた都道府県一覧)しようと思っています。
※あくまで例ですが、チェックを付けた都道府県に住んでる人に対してその商品を格安で提供するなどを設定できるようにしたい
 →その前段となるデータの詰め込み段階で困ってます。

その為、登録する商品に対して複数の対象地域を管理するTABLE_Aを用意しました。
TABLE_Aのフィールドとしては以下
====
id
productId
areaCode
====

このテーブルに対して、商品登録画面下部にある登録ボタンを押下したタイミングでデータ追加を行いたいです。

その為、商品登録画面に対して項目追加したり入力フォームを追加しているプラグインを参考に作成方法を確認してました。
ただ、以下のプラグインを解析していて「どうしてデータが追加できるのか」理屈が理解できませんでした。

参考にしているプラグイン
関連商品プラグイン(RelatedProduct4)

【わからない事】
こちらのプラグインは関連商品の入力パネルを商品登録画面下部に追加しているのですが
入力した内容をどのどうやってDBにデータ追加しているのかわかりませんでした。
見ている限り、flushをつかった記述も見つからず、別のお作法があるのかもしれないと思っているのですが
ECCUBEやSympony自体初めて使う為見当がつきませんでした。

その為、どのように考えて作成すればいいのかご教示いただきたいです。
本当に基本的な所がわかっていないだけかと思いますが、ご助言いただければ幸いです。
468
投稿日時: 2022/2/4 11:29
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: 商品登録画面に入力フォーム追加した際のDBへのデータ反映方法について
DBにデータを登録しているタイミングは
/src/Eccube/Controller/Admin/Product/ProductController.php function edit()内にある

$this->entityManager->persist($Product);
$this->entityManager->flush();

のタイミングだと思います。

プラグイン内の
/Entity/ProductTrait.php や
/Form/Extension/Admin/RelatedCollectionExtension.php で
ProductとRelatedProductsのリレーションやデータコレクションの追加・廃止を処理しており、
$this->entityManager->persist($Product);
で$Productに繋がっているデータもまとめてDB格納の対象として準備され、
次のflush()の処理で関連するEntityインスタンスのデータがまとめてDBに反映されているのだと思います。

プラグインではEntityインスタンスの状態のみ制御して
DBへの格納はECCUBE本体の処理を利用しているという形かと思います。


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

Den5585
投稿日時: 2022/2/7 9:13
対応状況: 解決済
新米
登録日: 2022/2/3
居住地:
投稿: 2
Re: 商品登録画面に入力フォーム追加した際のDBへのデータ反映方法について
ご回答いただきありがとうございました。

ご回答いただくまでの間、私の方でも解析を行っており
468様と同じ見解になりました。

まだ不明点が多いですが、前に進めると思います。

また、質問を上げさせていただく事があると思いますが
その際はよろしくお願いいたします。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1568
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
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.