バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > 管理機能 > OneToOneリレーションのエラー

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
yuy-tank
投稿日時: 2018/3/2 17:02
対応状況: 開発中
常連
登録日: 2017/11/10
居住地:
投稿: 39
OneToOneリレーションのエラー
\Entity\PriceList,\Entity\PriceList2というエンティティがそれぞれあります。

PriceList と PriceList2はOneToOneのリレーションです。コントローラ側で、PriceListの更新とともに、PriceListとOneToOneの関係にあるPriceList2も更新させようと思い、以下のようにymlファイルにマッピング定義しました。



PriceList.dcm.yml

oneToOne:
PriceList2:
targetEntity: Plugin\PriceExpansion\Entity\PriceList2
cascade: ["persist","remove"]
mappedBy: PriceList


PriceList2.dcm.yml
oneToOne:
PriceList:
targetEntity: Plugin\PriceExpansion\Entity\PriceList
inversedBy: PriceList2
joinColumn:
name: price_list_id
referencedColumnName: price_list_id



ところが、新規登録をする場合は、PriceListのカラムの生成時にPriceList2も自動的にカラムが作成されるのですが、更新するときになると、エラーになります。
ちなみにエラーの内容は以下です。



UniqueConstraintViolationException in AbstractMySQLDriver.php line 66:
An exception occurred while executing 'INSERT INTO plg_price_list2 (price1, price2, price3, price4, price_list_id) VALUES (?, ?, ?, ?, ?)' with params ["A", "B", "C", "D", 8]:

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '8' for key 'UNIQ_F8C67A015688DED7'



PriceListの中で、price_list_id が8のカラムを更新しようとしているのですが、エラーメッセージを読むと、どうやら重複するからいけないということになっているようです。データベースの更新は確かUPDATE文だった気がするので、INSERT文を実行しようとしていることに違和感を覚えます。よろしければ、間違っている箇所を教えてください。








umebius
投稿日時: 2018/3/4 9:53
対応状況: −−−
登録日: 2016/7/22
居住地: Tokyo
投稿: 1007
Re: OneToOneリレーションのエラー
PHPのコードの方を拝見しないとなんとも言えないところなのですが、
すでに$PriceListのPriceList2が登録されている場合も
new PriceList2()として新規登録しているということではないでしょうか?

すでにPriceList2が存在する場合は既存のPriceList2を取得して、更新してやる必要がございますが、いかがでしょうか。


----------------
////////////////
(株)U-Mebius EC-CUBE3 カスタマイズ /バグ修正/SEO はおまかせ
一緒にEC-CUBEでサイト制作を行うプログラマ・コーダー・デザイナー募集

yuy-tank
投稿日時: 2018/3/9 12:00
対応状況: −−−
常連
登録日: 2017/11/10
居住地:
投稿: 39
Re: OneToOneリレーションのエラー
回答ありがとうございます。

既存のPriceList2を取得することで解決致しました!
ありがとうございました!
umebius
投稿日時: 2018/3/9 13:23
対応状況: −−−
登録日: 2016/7/22
居住地: Tokyo
投稿: 1007
Re: OneToOneリレーションのエラー
yuy-tank様

良かったです!
また何かございましたらご投稿ください。


----------------
////////////////
(株)U-Mebius EC-CUBE3 カスタマイズ /バグ修正/SEO はおまかせ
一緒にEC-CUBEでサイト制作を行うプログラマ・コーダー・デザイナー募集

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBEペイメント

統計情報

総メンバー数は32,115名です
総投稿数は87,532件です

投稿数ランキング

1
seasoft
7331
2
AMUAMU
2712
3
nanasess
1774
4
yuh
1512
5
468
1224
6
red
1178
7
umebius
1007
8
fukap
907
9
shutta
827
10
tsuji
815
11 ramrun 789
12 karin 656
13
tao_s
651
14 sumida 641
15
homan
633
16 DELIGHT 571
17
h_tanaka
566
18
patapata
502
19
flealog
483
20 tonton 436


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© LOCKON CO.,LTD. All Rights Reserved.