プラグイン > その他 > 3.X系メーカー管理プラグイン拡張について |
その他
フラット表示 | 前のトピック | 次のトピック |
投稿者 | スレッド |
---|---|
beginnerA |
投稿日時: 2020/6/13 0:46
対応状況: −−−
|
新米 登録日: 2020/6/13 居住地: 投稿: 7 |
3.X系メーカー管理プラグイン拡張について ▼テンプレート
[EC-CUBE] 3.0.18 [レンタルサーバ] ロリポップ [OS] Linux [PHP] Version 7.1.5 [データベース] MySQL 5.6.23 [WEBサーバ] Apache [ブラウザ] Chrome [導入プラグインの有無] メーカー管理プラグイン [カスタマイズの有無] メーカーを商品詳細だけでなく、商品一覧の商品にも表示できるようにリレーションを行った。 [現象] メーカーを商品詳細だけでなく、フロントの商品一覧にも表示できるよう ■Plugin.Maker.Entity.ProductMaker.dcm.yml manyToOne: Maker: targetEntity: Plugin\Maker\Entity\Maker inversedBy: ProductMaker joinColumn: name: maker_id referencedColumnName: maker_id #ここから下を追記 Product: targetEntity: Eccube\Entity\Product inversedBy: ProductMaker joinColumn: name: product_id referencedColumnName: product_id ■Eccube.Entity.Product.dcm.yml oneToMany: ProductReviews: targetEntity: Plugin\ProductReview\Entity\ProductReview mappedBy: Product #ここから下を追記 ProductMaker: targetEntity: Plugin\Maker\Entity\ProductMaker mappedBy: Product 上記の様に追記を行い、結合関係を持たせました。 予定通り、フロントの商品一覧で各商品にメーカー名を表示させる事はできたのですが、この状態で管理画面の商品編集からメーカーを選択し商品登録をすると An exception occurred while executing 'INSERT INTO plg_product_maker (product_id, maker_url, del_flg, create_date, update_date, maker_id) VALUES (?, ?, ?, ?, ?, ?)' with params [null, null, 0, "2020-01-11 00:00:00", "2020-01-11 00:00:00", 2]: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'product_id' cannot be null このようなエラーが出てしまいます。 エラー内容からすると、product_idに値が渡されてないという事だと思います。 ■Plugin.Maker.Entity.ProductMaker.dcm.yml ー省略ー #ここから下を追記 Product: targetEntity: Eccube\Entity\Product inversedBy: ProductMaker joinColumn: name: product_id referencedColumnName: product_id 先ほどの追記部分を削除すると正常に値は渡されています。 この状態で管理画面の商品登録画面にて、一度メーカーを設定した上で再度、追記部分を記載したあとにメーカーを未選択の状態にするとデータベースのテーブルからも該当のデータは削除されている事から remove については正常に動作しているように思えます。 ■Event\Maker.php内のonAdminProductEditComplete $ProductMaker ->setId($Product->getId()) ->setMakerUrl($makerUrl) ->setDelFlg(Constant::DISABLED) ->setMaker($maker); /** * @var EntityRepository $this->app['orm.em'] */ $this->app['orm.em']->persist($ProductMaker); $this->app['orm.em']->flush($ProductMaker); log_info('Event: product maker save success!', array('Product id' => $ProductMaker->getId())); log_info('Event: product maker hook into the product management complete end.'); flushの際にエラーが出ているとは思うのですが、情報が少なく解決策が見つかっていません。 Eccubeの書籍やSymfonyの書籍を購入してみたのですが、今ひとつ情報量が少なく解決できないままでハマってしまっております。 わかる方がいらっしゃいましたら、教えていただけると助かります... |
フラット表示 | 前のトピック | 次のトピック |
題名 | 投稿者 | 日時 |
---|---|---|
» 3.X系メーカー管理プラグイン拡張について | beginnerA | 2020/6/13 0:46 |
Re: 3.X系メーカー管理プラグイン拡張について | 468 | 2020/6/13 1:02 |
Re: 3.X系メーカー管理プラグイン拡張について | beginnerA | 2020/6/13 1:25 |
Re: 3.X系メーカー管理プラグイン拡張について | 468 | 2020/6/15 9:17 |
Re: 3.X系メーカー管理プラグイン拡張について | beginnerA | 2020/6/30 10:36 |