プラグイン > 開発について > 商品登録画面に入力フォーム追加した際のDBへのデータ反映方法について |
開発について
スレッド表示 | 古いものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
Den5585 |
投稿日時: 2022/2/7 9:13
対応状況: 解決済
|
新米 登録日: 2022/2/3 居住地: 投稿: 2 |
Re: 商品登録画面に入力フォーム追加した際のDBへのデータ反映方法について ご回答いただきありがとうございました。
ご回答いただくまでの間、私の方でも解析を行っており 468様と同じ見解になりました。 まだ不明点が多いですが、前に進めると思います。 また、質問を上げさせていただく事があると思いますが その際はよろしくお願いいたします。 |
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本体の処理を利用しているという形かと思います。
|
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自体初めて使う為見当がつきませんでした。 その為、どのように考えて作成すればいいのかご教示いただきたいです。 本当に基本的な所がわかっていないだけかと思いますが、ご助言いただければ幸いです。 |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | トップ |