バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

プラグイン > その他 > 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

 



ログイン


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

統計情報

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

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1644
8
red
1570
9
mcontact
1288
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.