プラグイン > 開発について > 国情報が保存できない |
開発について
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
h_tanaka |
投稿日時: 2018/5/7 17:58
対応状況: 解決済
|
神 登録日: 2016/7/22 居住地: 愛媛県 投稿: 1610 |
国情報が保存できない EC-CUBE3.0.16
商品購入時にプラグインにて国情報を保存したいと思っています。 会員で購入する場合は問題なく国情報が保存できたのですが、ゲスト購入の場合に $app['orm.em']->flush(); のタイミングで次のようなエラーが発生してしまいます。 このエラーはどうすれば解決できるでしょうか? ■エラー ORMInvalidArgumentException in ORMInvalidArgumentException.php line 91: A new entity was found through the relationship 'Eccube\Entity\Order#Country' that was not configured to cascade persist operations for entity: ニューカレドニア. To solve this issue: Either explicitly call EntityManager#persist() on this unknown entity or configure cascade persist this association in the mapping for example @ManyToOne(..,cascade={"persist"}). 以下、実装したソースを記載します。 app/Plugin/Test/event.yml
app/Plugin/Test/TestEvent.php
|
umebius |
投稿日時: 2018/5/7 20:51
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 投稿: 2085 |
Re: 国情報が保存できない エラーはセッションから取り出したCountryエンティティをそのままOrderに登録してflushしているためかと思います。
ここです。
都道府県(Pref)について見ると、EC-CUBE標準のソースではセッションから取り出したエンティティデータを一度データベースから復元している箇所があります。 これと同じで良いかなと思います。
|
h_tanaka |
投稿日時: 2018/5/8 15:59
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 愛媛県 投稿: 1610 |
Re: 国情報が保存できない umebius 様
ありがとうございます! ご提示通りの方法でうまくエラーが解決できました。 country はレポジトリに登録されていないようでしたので、エンティティからレポジトリを取得することでうまくいきました。
|
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |